最好的解决方案是,如果可以的话,首先不要让他们输入非数字数据。你在用UITextField
吗?如果不是,请忽略其余部分,但如果是这样:
首先,使您的视图控制器是一个UITextFieldDelegate
,例如:
@interface MyViewController : UIViewController <UITextFieldDelegate>
然后,在viewDidLoad
:
self.myTextField.delegate = self;
其次,添加一个shouldChangeCharacterInRange
只允许所需的字符:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *nonNumeric = [[NSCharacterSet characterSetWithCharactersInString:@"+-0123456789"] invertedSet];
if ([string rangeOfCharacterFromSet:nonNumeric].location == NSNotFound)
return TRUE;
else
return FALSE;
}
第三,您可能希望将文本字段的键盘更改为仅用于数字数据,例如self.myTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation
或UIKeyboardTypeDecimalPad
类似的东西。