zoukankan      html  css  js  c++  java
  • 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];

                    

                }

                

            }

            

        }

        

  • 相关阅读:
    websocket的理解&应用&场景
    如何设置winform程序图标
    Python简单爬虫爬取自己博客园所有文章
    分享一个自己做的SpringMVC的PPT
    2016校招薪资汇总
    2016阿里巴巴校招offer面经
    利用快排partition求前N小的元素
    几个面试经典算法题Java解答
    深入理解java垃圾回收机制
    深入理解JVM结构
  • 原文地址:https://www.cnblogs.com/gzz2016/p/5109496.html
Copyright © 2011-2022 走看看