如何限制UITextField中的字符数?
即如果我将其限制为10个字符,用户将无法输入超过10个。此外,我想阻止他输入一些特殊字符,如+,=等。
我该怎么做?
答案 0 :(得分: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;
}
}
答案 1 :(得分:7)
您可以使视图控制器符合UITextFieldDelegate protocol
并实现textField:shouldChangeCharactersInRange:replacementString:
- 只要用户在文本字段中键入新字符或删除现有字符,就会调用此方法。
然后,您可以检查用户刚输入的字符的有效性,并返回NO
以查找任何无效字符(例如问题中的+,=)。
在blog post中有一个例子。
答案 2 :(得分:2)
这适合我。
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if([textField.text length]<=8){
[tf resignFirstResponder];
return YES;
}
else
return NO;
}
答案 3 :(得分:1)
如果要主动限制用户输入字符,您要做的是为UITextField设置委托来处理事件,然后查看textDidChange通知。然后,您可以在每次更改时查看输入的文本,如果输入了任何不需要的字符(或超出所需限制的额外字符),则可以将其删除。
有关详细信息,请参阅此处: http://discussions.apple.com/thread.jspa?messageID=6971952
答案 4 :(得分:0)
尝试将UIKeyboardTypeNamePhonePad用于您的UITextField。它上面只有字母和数字:
textField.keyboardType = UIKeyboardTypeNamePhonePad;