UITextField限制输入长度,中文输入提示影响长度

[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

输入改变的时候监听限制输入

- (void)textFieldDidChange:(UITextField *)textField {

    NSString *toBeString = textField.text;

    NSArray *currentar = [UITextInputMode activeInputModes];

    UITextInputMode *current = [currentar firstObject];


    //下面的方法是iOS7被废弃的,注释

//    NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式    

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

        }

    }

    NSLog(@"%@",textField.text);

}

你可能感兴趣的:(UITextField限制输入长度,中文输入提示影响长度)