如何限制 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
尝试为您的 UITextField 使用 UIKeyboardTypeNamePhonePad。它只有字母和数字:
textField.keyboardType = UIKeyboardTypeNamePhonePad;