0

我有很多用于计算的文本字段输入,如果任何输入不是数字和负数,那么它会在按钮单击时显示错误消息,而不是移动到另一个屏幕

4

2 回答 2

2

詹姆斯,至少有几种方法可以解决这个问题。

#1)为情节提要/xib 文件中那些特定的纯数字文本字段指定数字键盘

#2) 为文本字段设置一个委托,当用户完成编辑(例如textFieldDidEndEditing:)时,查看文本字段的内容,如果您看到任何不是数字的内容,则抛出 UIAlert。

一种方法是:

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    NSRange rangeOfInvalidCharacter = [textField.text rangeOfCharacterFromSet: [[NSCharacterSet decimalDigitCharacterSet] invertedSet]];

    if(rangeOfInvalidCharacter.location != NSNotFound)
    {
        // throw up a UIAlert here

        // and, if you want, erase the bogus text via:
        textField.text = @"";
        return;
    }

    // and if we get here, that means the text field contents are only digits.
}
于 2012-05-31T04:22:09.043 回答
0

试试这个代码

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
{
  NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];

if ([string rangeOfCharacterFromSet:set].location != NSNotFound) {
  return NO;  // For don't add this character
}

return YES; // For input a true character

}
于 2012-05-31T04:26:43.273 回答