UItextField中国語入力方式入力時の文字長の制限
1463 ワード
一.UItextField値に従って変更する方法を追加する
二.傍受の設定
しかし、いずれにしても、実現の方法は同じです.
[_textField addTarget:self action:@selector(textFiledDidChange:) forControlEvents:UIControlEventEditingChanged];
二.傍受の設定
[[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];
}
}
}
}