美文网首页
【转】UITextField限制中文输入下的字符长度

【转】UITextField限制中文输入下的字符长度

作者: Jin丶hy | 来源:发表于2017-05-27 16:16 被阅读10次

    转自:UITextField限制中文输入下的字符长度

    所以需要解决这个问题,实现方法如下:

    1:注册文本改变通知,添加观察者监听输入框

    [objc] view plain copy

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

    2:实现监听方法控制中文的输入
    [objc] view plain copy

    -(void)textFiledEditChanged:(NSNotification*)obj{  
        UITextField *textField = (UITextField *)obj.object;  
          
        NSString *toBeString = textField.text;  
        NSArray *currentar = [UITextInputMode activeInputModes];  
        // 键盘输入模式  
        UITextInputMode *current = [currentar firstObject];  
        //简体中文输入,包括简体拼音,健体五笔,简体手写  
        if([current.primaryLanguage isEqualToString:@"zh-Hans"]) {  
            UITextRange *selectedRange = [textField markedTextRange];  
            //获取高亮部分  
            UITextPosition *position = [textField positionFromPosition:selectedRange.start  offset:0];  
            //没有高亮选择的字,则对已输入的文字进行字数统计和限制  
            if(!position) {  
                if(toBeString.length > 20) {  
                    textField.text = [toBeString substringToIndex:20];  
                }  
            }  
            //有高亮选择的字符串,则暂不对文字进行统计和限制  
            else{  
                  
            }  
        }  
        //中文输入法以外的直接对其统计限制即可,不考虑其他语种情况  
        else{  
            if(toBeString.length > 20) {  
                textField.text= [toBeString substringToIndex:20];  
            }  
        }  
    }  
    

    相关文章

      网友评论

          本文标题:【转】UITextField限制中文输入下的字符长度

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