美文网首页
监听到中文字数

监听到中文字数

作者: 40dd4b561abe | 来源:发表于2017-11-09 15:55 被阅读5次

<1>在init时候注册notification:

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

<2>实现监听方法:

-(void)textFiledEditChanged:(NSNotification *)obj{
   UITextField *textField = (UITextField *)obj.object;
   
   NSString *toBeString = textField.text;
   NSString *lang = [[UITextInputMode currentInputMode] 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{
         
       }
   }
   // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
   else{
       if (toBeString.length > kMaxLength) {
           textField.text = [toBeString substringToIndex:kMaxLength];
       }
   }
}

<3>在dealloc里注销掉监听方法,切记!

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

相关文章

网友评论

      本文标题:监听到中文字数

      本文链接:https://www.haomeiwen.com/subject/rwfmmxtx.html