• 2016-01-07 textview 字数限制


    1. 字母数字  限制字数 delegate
    2. //控制输入文字的长度和内容,可通调用以下代理方法实现

      - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

      {

          if (range.location>=20)

          {

              //控制输入文本的长度

              UIAlertView *alve = [[UIAlertView alloc]initWithTitle:@"提示" message:@"输入内容最多20" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

              [alve show];

              

              return  NO;

          }

          if ([text isEqualToString:@" "]) {

              //禁止输入换行

              [textView resignFirstResponder];

              return NO;

          }

          else

          {

              return YES;

          }

      }

     3.汉字的

    #define MaxNumberOfDescriptionChars  20

     viewdidload 中

      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewEditChanged:) name:UITextViewTextDidChangeNotification object:_descrViewa];

        

    - (void)dealloc

     

    {

        

        [[NSNotificationCenter defaultCenter] removeObserver:self];

        [[NSNotificationCenter defaultCenter]removeObserver:self

                                                       name:@"UITextViewTextDidChangeNotification"

                                                     object:_descrViewa];

        

    }

     

     

        

        // 监听文本改变

    -(void)textViewEditChanged:(NSNotification *)obj{

            

            UITextView *textView = (UITextView *)obj.object;

            

            

            

            NSString *toBeString = textView.text;

            

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

            

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

                

                UITextRange *selectedRange = [textView markedTextRange];

                

                //获取高亮部分

                

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

                

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

                

                if (!position) {

                    

                    if (toBeString.length > MaxNumberOfDescriptionChars) {

                        

                        textView.text = [toBeString substringToIndex:MaxNumberOfDescriptionChars];

                        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"不能超过20个字!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

                        [alert show];

                    }

                    

                }

                

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

                

                else{

                    

                    

                    

                }

                

            }

            

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

            

            else{

                

                if (toBeString.length > MaxNumberOfDescriptionChars) {

                    

                    textView.text = [toBeString substringToIndex:MaxNumberOfDescriptionChars];

                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"不能超过20个字!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

                    [alert show];

                    

                }

                

            }

            

        }

        

  • 相关阅读:
    why why why
    为什么又显示了呢?
    Hello
    兼容性问题
    前端性能优化
    ES6新增API
    详解面向对象、构造函数、原型与原型链
    post请求导出表单。
    vue在生产环境清除console.log
    js 延迟加载的几种方法
  • 原文地址:https://www.cnblogs.com/gzz2016/p/5109496.html
Copyright © 2020-2023  润新知