1.监听输入(eg.只能是最多6位数字)
<UITextFieldDelegate>
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//string的length为0表示删除
// if (textField.text.length + string.length > 6) {
// return NO;
// }
//处理可能存在的粘贴情况
//先将用户输入、粘贴的string进行处理,提取出其中的数字
//根据用户输入的range,将提取出的数字放入textfield原本的string中
//剪切得到的string为小于6位,并赋值给textfield
//最后要return NO,否则textfield会出现没有经过限制的内容
NSString *limitStr = @"0123456789";
NSMutableString *strToShowFromString = [[NSMutableString alloc] init];
for (int i = 0; i < string.length; i++) {
NSString *tempStr = [string substringWithRange:NSMakeRange(i, 1)];
if ([limitStr containsString:tempStr]) {
[strToShowFromString appendString:tempStr];
}
}
NSString *tempStr1 = [textField.text substringWithRange:NSMakeRange(0, range.location)];
NSString *tempStr2 = [textField.text substringWithRange:NSMakeRange(range.location + range.length, textField.text.length - range.location - range.length)];
NSString *strToShow = [NSString stringWithFormat:@"%@%@%@", tempStr1, strToShowFromString, tempStr2];
if (strToShow.length > 6) {
strToShow = [strToShow substringWithRange:NSMakeRange(0, 6)];
}
textField.text = strToShow;
return NO;
}