【问题标题】:How to verify UITextField text?如何验证 UITextField 文本?
【发布时间】:2010-12-18 18:04:59
【问题描述】:
我需要确保用户只在我的文本字段中输入数字。我将键盘设置为数字,但如果用户使用外部键盘,他们可能会输入字母。如何检测我的textfield.text 中的任何字符是否是字符而不是数字?
谢谢!
【问题讨论】:
标签:
iphone
objective-c
cocoa-touch
uitextfield
【解决方案1】:
您可以选择可以输入文本字段的字符
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
/* this ensures that ONLY numbers can be entered, no matter what kind of keyboard is used */
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c]) {
return NO;
}
}
/* this allows you to choose how many characters can be used in the textField */
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 7) ? NO : YES;
}
【解决方案2】:
只要用户输入一个键,就会调用这个文本域委托。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
在此检查文本是否包含字符。如果是你的行动。比如提示一个警报什么的。
【解决方案3】:
在文本字段的委托中实现textField:shouldChangeCharactersInRange:replacementString:,如果传递的字符串包含无效字符,则返回NO。