zoukankan      html  css  js  c++  java
  • textView控制输入字数的限制

    转载:http://www.jianshu.com/p/2d1c06f2dfa4

    #define MAX_STARWORDS_LENGTH 30

    - (void)textViewDidChange:(UITextView *)textView{

    //    NSString  * nsTextContent=textView.text;

    //    NSInteger   existTextNum=[nsTextContent length];

    //    NSLog(@"剩余:%ld",30-existTextNum);

        

        NSString *toBeString = textView.text;

        NSArray *current = [UITextInputMode activeInputModes];

        UITextInputMode *currentInputMode = [current firstObject];

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

        if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写

            //获取高亮部分

            UITextRange *selectedRange = [textView markedTextRange];

            UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];

            // 没有高亮选择的字,则对已输入的文字进行字数统计和限制

            if (!position) {

                if (toBeString.length > MAX_STARWORDS_LENGTH)

                {

                    NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];

                    if (rangeIndex.length == 1){

                        textView.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];

                    }else{

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

                        textView.text = [toBeString substringWithRange:rangeRange];

                    }

                }

            }else{//有高亮选择的字符串,则暂不对文字进行统计和限制

                

            }

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

            if (toBeString.length > MAX_STARWORDS_LENGTH){

                NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];

                if (rangeIndex.length == 1){

                    textView.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];

                }else{

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

                    textView.text = [toBeString substringWithRange:rangeRange];

                }

            }

        }

    }

  • 相关阅读:
    【转载】SAP_ECC6.0_EHP4或SAP_ECC6.0_EHP5_基于Windows_Server_2008R2_和SQL_server_2008下的安装
    使用delphi 开发多层应用(二十四)KbmMW 的消息方式和创建WIB节点
    使用delphi 开发多层应用(二十三)KbmMW 的WIB
    实现KbmMw web server 支持https
    KbmMW 服务器架构简介
    Devexpress VCL Build v2014 vol 14.1.1 beta发布
    使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
    KbmMW 4.50.00 测试版发布
    Basic4android v3.80 beta 发布
    KbmMW 认证管理器说明(转载)
  • 原文地址:https://www.cnblogs.com/xilanglang/p/5530517.html
Copyright © 2011-2022 走看看