1. 程式人生 > >IOS:UITextField輸入中文時限制長度

IOS:UITextField輸入中文時限制長度

1、初始化時註冊通知notification:

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
                                                name:@"UITextFieldTextDidChangeNotification"
                                              object:_textFiled];

2、 實現監聽方:

#define kMaxLength 40
-(void)textFiledEditChanged:(NSNotification *)obj{ UITextField *textField = (UITextField *)obj.object; NSString *toBeString = textField.text; // 鍵盤輸入模式 NSString *lang = textField.textInputMode.primaryLanguage;; if ([lang isEqualToString:@"zh-Hans"]) { UITextRange *selectedRange = [textField markedTextRange]; // 簡體中文輸入,包括簡體拼音,健體五筆,簡體手寫
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; if (!position) { if (toBeString.length > kMaxLength) { textField.text = [toBeString substringToIndex:kMaxLength]; } } } else{ if
(toBeString.length > kMaxLength) { textField.text = [toBeString substringToIndex:kMaxLength]; } } }

3、在dealloc裡登出掉監聽方法:

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"UITextFieldTextDidChangeNotification" object:_textFiled];
}

OK,輸入中文時可以限制輸入漢字的長度了。