• ios中实现对UItextField,UITextView等输入框的字数限制


    本文转载至 http://blog.sina.com.cn/s/blog_9bf272cf01013lsd.html

    2011-10-05 16:48 533人阅读 评论(0) 收藏 举报

    1.     如何实现对UITextField ,UITextView等输入框的 字数限制

           (1)首先,肯定要 让controller 实现 UITextFieldDelegate (针对UITextField)或者  UITextViewDelegate(针对UITextView)

                 然后,将 输入框的delegate属性设置为self.  

          (2) 然后,我们就可以用这两个delegate的函数来实现 我们对输入字数的限制了。

               对于 UITextField 是函数

     - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

          或者

               对于UITextView 是函数

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

          如果允许继续输入,那么返回YES,否则返回NO。

         代码如下:

        

    view plain

    1. //如果输入超过规定的字数100,就不再让输入  
    2. - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text  
    3. {  
    4.     if (range.location>=100)   
    5.     {  
    6.         return  NO;  
    7.     }  
    8.     else   
    9.     {  
    10.         return YES;  
    11.     }  
    12. }  

    2.  如何实现 对有输入限制的输入框的剩余字数的自动计算

         比如上面的代码中,输入框的字数不能超过100,如何实时的计算出当前可以输入多少个字符呢?

       UITextField 没有找到合适的函数,也可以在函数

       - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

    中来实现。

       代码:

      

    view plain

    1. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  
    2. {  
    3.    int  remainTextNum_=100;  
    4.    //计算剩下多少文字可以输入  
    5.    if(range.location>=100)  
    6.    {  
    7.       remainTextNum_=0;  
    8.       
    9.       return NO;  
    10.    }  
    11.    else  
    12.    {  
    13.     NSString  * nsTextContent=string.text;  
    14.     int   existTextNum=[nsTextContent length];  
    15.     remainTextNum_=100-existTextNum;  
    16.         return YES;  
    17.    }  
    18.      
    19. }  

        UITextView 除了可以在函数

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

        中按照上面类似的办法处理以外,还可以在函数  

        - (void)textViewDidChange:(UITextView *)textView  中处理。

        代码如下:

        

    view plain

    1. //在这个地方计算输入的字数  
    2. - (void)textViewDidChange:(UITextView *)textView  
    3. {  
    4.     NSString  * nsTextContent=textView.text;  
    5.     int   existTextNum=[nsTextContent length];  
    6.     remainTextNum_=100-existTextNum;  
    7. }
  • 相关阅读:
    mybatis 自定义插件的使用
    mybatis的TypeHandler 的使用
    css水平居中的各种方法
    ASP.Net MVC——DotNetZip简单使用,解决文件压缩问题。
    TinyMCE的使用(包括汉化及本地图片上传功能)
    ASP.Net MVC——使用 ITextSharp 完美解决HTML转PDF(中文也可以)
    关于项目中值对象Identifier的设计-领域驱动
    B/S工作原理
    大学期间项目笔记
    C#反射机制
  • 原文地址:https://www.cnblogs.com/bugismyalllife/p/4911558.html
Copyright © 2020-2023  润新知