在开发中在特定的情况下只能输入一些我们规定的字符,不如:0-9,其他字符输入输入无效。
一般情况下,UITextField的Keyboard设备为Number Pad,就可以满足了,不过有的时候,设备安装第三方的输入法,虽然点击输入框弹出的键盘都是数字,可是还会有其他的按键可以调成中文活着英文,我们不排除不乖的用户会这么做。所以最好的办法就是。。。。。。
当当当当,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return [self validateNumber:string];
}
- (BOOL)validateNumber:(NSString*)number {
BOOL res = YES;
NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
int i = 0;
while (i < number.length) {
NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
NSRange range = [string rangeOfCharacterFromSet:tmpSet]; if (range.length == 0) {
res = NO;
break;
}
i++;
}
return res;
}