美文网首页
限制输入长度

限制输入长度

作者: 楠Y | 来源:发表于2017-09-05 12:29 被阅读7次

    - (void)textFieldDidChange:(UITextField *)textField

    {

    UITextField * textfield = [_tableview viewWithTag:1000];

    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) {

    if (toBeString.length > kMaxLength)

    {

    NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:kMaxLength];

    if (rangeIndex.length == 1)

    {

    textfield.text = [toBeString substringToIndex:kMaxLength];

    }

    else

    {

    NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, kMaxLength)];

    textfield.text = [toBeString substringWithRange:rangeRange];

    }

    }

    }

    }

    // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

    else{

    if (toBeString.length > kMaxLength)

    {

    NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:kMaxLength];

    if (rangeIndex.length == 1)

    {

    textfield.text = [toBeString substringToIndex:kMaxLength];

    }

    else

    {

    NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0,kMaxLength)];

    textfield.text = [toBeString substringWithRange:rangeRange];

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:限制输入长度

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