如何检测文本字段中是否有文本而不是数字值?
我有一个文本字段,用户input一个数字,它被转换为一个整数。
键盘设置为十进制数字。 除了粘贴function仍然启用,所以用户可以粘贴文本。
如果用户input一个非数字值,我想把它设置成@“error”。
我不想禁用粘贴function,因为我仍然希望用户能够复制和粘贴自己的数值到我的应用程序。
如果你想使用限制,只需要input数值,那么使用UITextField
委托方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *nonNumberSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0) || [string isEqualToString:@""]; }
如果string是数字,这将返回YES ,否则返回NO 。
EDITE:
@亚当的答案是最好的检查文本只是数字或不。
简单地禁止input非数字字符是一种方法。 但是你问的是如何检测非数字…
使用
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]]; if(range.location == NSNotFound) { // then it is numeric only }
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];