iOS UITextFeild获取高亮部分的长度

获取原因:

  中英文混输时,会遇到长度统计不准的问题。

获取方法:

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。