TextField验证

时间:2011-04-11 04:39:33

标签: iphone ios ios4 ipad

我的iPad应用程序中有一个TextField。我希望“数字键盘”接触(没有标点符号和字母键盘按钮)。我该怎么办?如何验证TextField?

5 个答案:

答案 0 :(得分:4)

在界面构建器中设置textField keyboard = NumberPad。

由于

Mitesh

答案 1 :(得分:4)

NSString *nameRegex =@"[0-9]"; 
NSPredicate *nameTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegex]; 
BOOL isNumber=[nameTest evaluateWithObject:string];

if(isNumber) {
  // valid number found
} else {
  // error message
}

在UITextField委托方法textField:shouldChangeCharactersInRange:replacementString:中使用此验证代码,以防止用户输入无效值。

答案 2 :(得分:2)

你无法在ipad上获得数字键盘。你自己必须检查用户从键盘输入的内容,如果没有数字显示他们输入数字的警告。

答案 3 :(得分:1)

您还可以使用askee mumber验证,如下所示我已经进行了验证,其中我考虑了onley数字和后退按钮。

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

  if([string isEqualToString:[NSString stringWithFormat:@"%c", 48]]||[string isEqualToString:[NSString stringWithFormat:@"%c", 49]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 50]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 51]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 52]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 53]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 54]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 55]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 56]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 57]] || [string isEqualToString:[NSString stringWithFormat:@"%c", 46]]||[string isEqualToString:@""])

    {

    if(textField==myText)
        return  YES;
    else 
        return NO;
}
else 
    return NO;
}

答案 4 :(得分:1)

这是iPad的数字键盘实现:https://github.com/IngmarStein/NumericKeypad

免责声明:它是我自己的azu's NumericKeypad的分支