UITextField只接受正整数并给出休息的警告信息

时间:2017-06-08 07:32:25

标签: ios objective-c iphone

我需要编写什么代码才能使我的UITextField只接受正整数(整数),而不是仅将键盘类型设置为数字。它应该在用户输入字符/分数/负数/特殊字符时提醒用户。请允许,让我知道。谢谢。

3 个答案:

答案 0 :(得分:2)

您可以实现UITextFieldDelegate方法

-(BOOL)textFieldShouldReturn:(UITextField *)textField {}

在其中,您可以检查textField的text属性,并使用NSNumberFormatter类方法numberFromString将其转换为NSNumber:并查看intValue是否为正。

答案 1 :(得分:1)

我做的是创建avalidate函数,每次触发UITextFieldDelegate方法 - textFieldDidEndEditing时都会调用它。

另一个选项是在保存信息时验证最后的所有字段。

对于整数,我发现以下方法效果很好(使用NSScanner):

- (bool)validateFields {
    if (textField.text.length > 0) {
        NSScanner *scanner = [NSScanner scannerWithString: textField.text.length.text];
        double d;
        BOOL success = [scanner scanDouble:&d];
        if (!success) {
            return false;
        }
        else
        {
            if(d < 0)
            {
                return false;
            }
        }
    }
}

希望这有帮助。

答案 2 :(得分:0)

我不知道是否有更好的方法,但您可以使用UITextFieldDelegate - textFieldDidEndEditing并自行验证输入的文本,以防有人输入错误的内容。显示AlertController