美文网首页
IOS 完美限制UITextField的字数限制

IOS 完美限制UITextField的字数限制

作者: 透支未来 | 来源:发表于2017-09-28 10:08 被阅读414次

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldDidChangeValue:) name: UITextFieldTextDidChangeNotification object:self.nickNameField];

- (void)textFieldDidChangeValue:(NSNotification *)notification
{
    UITextField *textField = (UITextField *)[notification object];
    if (textField.text.length < 2) {
        _sure_btn.backgroundColor = [UIColor grayColor];
        _sure_btn.userInteractionEnabled = NO;
    }else{
        _sure_btn.backgroundColor = [UIColor MyLanse];
        _sure_btn.userInteractionEnabled = YES;
    };
    NSString *toBeString = textField.text;
    
    //获取高亮部分
    UITextRange *selectedRange = [textField markedTextRange];
    UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
    
    // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
    if (!position)
    {
        if (toBeString.length > MAX_STARWORDS_LENGTH)
        {
            NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];
            if (rangeIndex.length == 1)
            {
                textField.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];
            }
            else
            {
                NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)];
                textField.text = [toBeString substringWithRange:rangeRange];
            }
        }
    }
    
    
}


- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

相关文章

网友评论

      本文标题:IOS 完美限制UITextField的字数限制

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