項目中對輸入字數(shù)進行限制,比如用戶名,發(fā)表帖子文字字數(shù)的限制
沒有用textfield的代理,自己添加監(jiān)聽
[self.textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)textChanged:(UITextField *)textField {
NSString *lang = [[UITextInputMode currentInputMode ] primaryLanguage];//鍵盤輸入模式
NSLog(@"%@",lang);
if ([lang isEqualToString:@"zh-Hans"]) {// 簡體中文輸入,包括簡體拼音,健體五筆,簡體手寫
UITextRange *selectedRange = [textField markedTextRange];
//獲取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
NSLog(@"%@",position);
//沒有高亮選擇的字珠漂,則對已輸入的文字進行字數(shù)統(tǒng)計和限制
if (!position) {
if (textField.text.length >12) {
textField.text = [textField.text substringToIndex:12];
}
}
//有高亮選擇的字符串,則暫不對文字進行統(tǒng)計和限制
else{
}
}
// 中文輸入法以外的直接對其統(tǒng)計限制即可纱兑,不考慮其他語種情況
else{
if (textField.text.length >=12) {
textField.text = [textField.text substringWithRange:NSMakeRange(0, 12)];
}
}
}
目前發(fā)現(xiàn)的bug,第三方輸入法中文后切換英文,字母會覆蓋掉最后一個漢字,系統(tǒng)的沒有問題