我需要编写什么代码才能使我的UITextField仅接受正整数(整数(,而不是将键盘类型设置为仅数字。并且它应该在用户输入字符/分数/负数/特殊字符时提醒用户。请告诉我。谢谢。
您可以实现 UITextFieldDelegate 方法
-(BOOL)textFieldShouldReturn:(UITextField *)textField {}
在其中,您可以检查 textField 的 text 属性,并使用 NSNumberFormatter 类方法 numberFromString: 将其转换为 NSNumber,并查看 intValue 是否为正数。
我所做的是创建验证函数,每次触发 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;
}
}
}
}
希望这有帮助。
是否有更好的方法,但是您可以使用UITextFieldDelegate - textFieldDidEndEdit并自己证明输入的文本,如果有人输入了"错误"的内容,请显示警报控制器