一 .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]; } } } }