【问题标题】: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 2020-11-23
      • 2014-05-10
      • 2023-03-25
      相关资源
      最近更新 更多