我有一个文本字段,用户输入一个数字并将其转换为整数。
键盘设置为十进制数字。除了粘贴功能仍然启用,因此用户可以将文本粘贴到其中。
如果用户在其中输入非数值,我想将其设置为将标签更改为“”错误“。
我不想禁用粘贴功能,因为我仍然希望用户能够将自己的数值复制并粘贴到我的应用中。
答案 0 :(得分:3)
如果您想要使用的限制只需要输入数值,那么请使用UITextField
的委托方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *nonNumberSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0) || [string isEqualToString:@""];
}
如果字符串是数字,则返回 YES ,否则返回 NO 。
<强> EDITE:强>
@ Adam&#39; 答案最适合检查文字是否为数字。
答案 1 :(得分:2)
简单地禁止输入非数字字符是一种方法。但你问的是你如何发现非数字......
使用
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
// then it is numeric only
}
答案 2 :(得分:0)
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];