//方法1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//退格
if([stringisEqualToString:@""]) {
returnYES;
}
//文本长度满不允许编辑防止系统九宫格键盘在此时传入数字标号字符
if(textField.text.length >=kMaxLength) {
returnNO;
}
//非联想状态
if(!textField.markedTextRange) {
NSString * tempString = [textField.textstringByReplacingCharactersInRange:rangewithString:string];
NSLog(@"%@",tempString);
if (tempString.length >kMaxLength) {
textField.text = [tempStringsubstringToIndex:kMaxLength];
returnNO;
}
}
returnYES;
}
//方法2
[_tfaddTarget:selfaction:@selector(textFieldTextDidChanged:)forControlEvents:UIControlEventEditingChanged];
- (void)textFieldTextDidChanged:(UITextField *)sender {
NSString * tempString = sender.text;
if (sender.markedTextRange ==nil && tempString.length >kMaxLength) {
sender.text = [tempStringsubstringToIndex:kMaxLength];
[sender.undoManagerremoveAllActions];
}
}