分享

实现对UITextField,UITextView等输入框的字数限制

 昵称2735774 2014-08-13
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。 



     代码如下: 
Java代码  收藏代码
  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; 



中来实现。 



   代码: 

Java代码  收藏代码
  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  中处理。 



    代码如下: 
Java代码  收藏代码
  1. //在这个地方计算输入的字数    
  2. (void)textViewDidChange:(UITextView *)textView    
  3.    
  4.     NSString  nsTextContent=textView.text;    
  5.     int   existTextNum=[nsTextContent length];    
  6.     remainTextNum_=100-existTextNum;    
  7.    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多