1.監(jiān)聽輸入(eg.只能是最多6位數(shù)字)
<UITextFieldDelegate>
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//string的length為0表示刪除
// if (textField.text.length + string.length > 6) {
// return NO;
// }
//處理可能存在的粘貼情況
//先將用戶輸入抗愁、粘貼的string進(jìn)行處理馁蒂,提取出其中的數(shù)字
//根據(jù)用戶輸入的range,將提取出的數(shù)字放入textfield原本的string中
//剪切得到的string為小于6位驹愚,并賦值給textfield
//最后要return NO远搪,否則textfield會(huì)出現(xiàn)沒有經(jīng)過限制的內(nèi)容
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;
}