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