如何限制的字符在为UITextField多少?
也就是说,如果我把它限制在10个字符,用户将无法进入超过10个。此外,我想阻止他进入一些特殊的字符,如+,=,等等。
我会怎么做呢?
如何限制的字符在为UITextField多少?
也就是说,如果我把它限制在10个字符,用户将无法进入超过10个。此外,我想阻止他进入一些特殊的字符,如+,=,等等。
我会怎么做呢?
下面是一个代码样品以限制的UITextField的大小:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([[textField text] length] + [string length] - range.length > MAX_LENGTH) {
return NO;
} else {
return YES;
}
}
你可以让你的视图控制器符合UITextFieldDelegate protocol
并实现textField:shouldChangeCharactersInRange:replacementString:
-这被称为每当用户在文本字段中一个新的字符或删除现有字符。
然后,您可以检查用户刚输入的有效性的字符,返回NO
任何无效字符(如喜欢+ =在你的问题)。
有这样的一个这样的例子博客文章 。
这对我的作品。
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if([textField.text length]<=8){
[tf resignFirstResponder];
return YES;
}
else
return NO;
}
如果您想积极限制进入角色的用户,你接下来要做的事情想要做的是设置一个委托检测UITextField来处理事件,然后看看textDidChange通知。 然后,您可以在每次改变时间看看输入的文本,如果任何不想要的字符(或额外的,超出你期望的极限)输入后,你可以删除它们。
在这里看到更多的信息: http://discussions.apple.com/thread.jspa?messageID=6971952
尝试使用UIKeyboardTypeNamePhonePad为您的UITextField。 它只有在它的字母和数字:
textField.keyboardType = UIKeyboardTypeNamePhonePad;