ios控制文本输入长度

- (void)valueChanged:(UITextField *)textField {
    int length = 30;//限制的字数
    NSString *toBeString = textField.text;
    NSString *lang = [[UIApplication sharedApplication] textInputMode].primaryLanguage; // 键盘输入模式
    if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写
        UITextRange *selectedRange = [textField markedTextRange];       //获取高亮部分
        UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
        // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
        if (!position || !selectedRange) {
            if (toBeString.length > length) {
                NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:length];
                if (rangeIndex.length == 1) {
                    textField.text = [toBeString substringToIndex:length];
                } else {
                    NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, length)];
                    textField.text = [toBeString substringWithRange:rangeRange];
                }
            }
        }
    }
    self.nickNameLenLabel.text = [NSString stringWithFormat:@"%d/%d",(int)textField.text.length,length];
}

你可能感兴趣的:(ios控制文本输入长度)