iOS UITextFiled输入字数限制实现

-(void)textViewEditChanged:(NSNotification *)obj{
    UITextField *textField = (UITextField *)obj.object;
    NSAttributedString* toBeString = textField.attributedText;
    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 >= 10) {
                
                textField.attributedText = [toBeString attributedSubstringFromRange:NSMakeRange(0, 10)];
                [Toast showWithText:@"输入内容不超过十个字"];
            }
        }else{
            
        }
        
    }
    
    // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
    
    else{
        if (toBeString.length > 10) {
            
            textField.attributedText = [toBeString attributedSubstringFromRange:NSMakeRange(0, 10)];
            [Toast showWithText:@"输入内容不超过十个字"];
            
        }
    }
    
}

推荐阅读更多精彩内容