一 .UITextField添加随值改变的方法code
[_textField addTarget:self action:@selector(textFiledDidChange:) forControlEvents:UIControlEventEditingChanged];
二 .设置监听
server
[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(textFiledDidChange:) name:@"UITextFieldTextDidChangeNotification" object:_textField];
但无论哪一种方式,实现的方式是同样的字符串
- (void)textFiledDidChange:(UITextField *)textField { if (textField == _textField) { NSString *toStr = textField.text; NSLog(@"%lu", (unsigned long)toStr.length); NSString *lang = textField.textInputMode.primaryLanguage;// 键盘输入模式 if ([lang isEqualToString:@"zh-Hans"]) {// 简体中文输入,包括简体拼音,健体五笔,简体手写 UITextRange *range = [textField markedTextRange]; //获取高亮部分 UITextPosition *position = [textField positionFromPosition:range.start offset:0]; if (!position) {// 没有高亮选择的字,则对已输入的文字进行字数统计和限制 if (toStr.length > 20) { _textField.text = [toStr substringToIndex:20]; } // 有高亮选择的字符串,则暂不对文字进行统计和限制 } } else {// 中文输入法之外的直接对其统计限制便可,不考虑其余语种状况 if (toStr.length > 20) { _textField.text = [toStr substringToIndex:20]; } } } }