[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
输入改变的时候监听限制输入
- ( void)textFieldDidChange:(UITextField *)textField { NSString *toBeString = textField.text; NSArray *currentar = [UITextInputMode activeInputModes]; UITextInputMode *current = [currentar firstObject]; // 下面的方法是iOS7被废弃的,注释 // NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式 if ([current.primaryLanguage isEqualToString: @" zh-Hans "]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写 UITextRange *selectedRange = [textField markedTextRange]; // 获取高亮部分 UITextPosition *position = [textField positionFromPosition:selectedRange.start offset: 0]; // 没有高亮选择的字,则对已输入的文字进行字数统计和限制 if (!position) { if (toBeString.length > 20) { textField.text = [toBeString substringToIndex: 20]; } } // 有高亮选择的字符串,则暂不对文字进行统计和限制 else{ } } // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况 else{ if (toBeString.length > 20) { textField.text = [toBeString substringToIndex: 20]; } } NSLog( @" %@ ",textField.text); }