如何实现 对输入框的文本内容进行限制的功能

如何实现 对输入框的文本内容进行限制的功能

 

  如何实现  对输入框的文本内容进行限制的功能

 

 

 

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

//如果输入超过规定的字数100,就不再让输入  

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

{  

    if (range.location>=100)   

    {  

        return  NO;  

    }  

    else   

    {  

        return YES;  

    }  

}  

 

 

 

 

 

 

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

 

 

 

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

 

 

 

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

 

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

 

 

 

中来实现。

 

 

 

   代码:

 

  

view plain

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

{  

   int  remainTextNum_=100;  

   //计算剩下多少文字可以输入  

   if(range.location>=100)  

   {  

      remainTextNum_=0;  

      

      return NO;  

   }  

   else  

   {  

    NSString  * nsTextContent=string.text;  

    int   existTextNum=[nsTextContent length];  

    remainTextNum_=100-existTextNum;  

        return YES;  

   }  

     

}  

 

 

 

 

 

 

 

 

    UITextView 除了可以在函数

 

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

 

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

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

 

 

 

    代码如下:

 

    

view plain

//在这个地方计算输入的字数  

- (void)textViewDidChange:(UITextView *)textView  

{  

    NSString  * nsTextContent=textView.text;  

    int   existTextNum=[nsTextContent length];  

    remainTextNum_=100-existTextNum;  

}  

 

 

 

 

 

posted on 2011-07-08 14:45  风乔  阅读(319)  评论(0编辑  收藏  举报

导航