读书人

兑现对UITextField UITextView等输入

发布时间: 2012-09-24 13:49:41 作者: rapoo

实现对UITextField ,UITextView等输入框的 字数限制
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。



代码如下:

//如果输入超过规定的字数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;



中来实现。



代码:

- (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 中处理。



代码如下:
    //在这个地方计算输入的字数      - (void)textViewDidChange:(UITextView *)textView      {          NSString  * nsTextContent=textView.text;          int   existTextNum=[nsTextContent length];          remainTextNum_=100-existTextNum;      }  


转至:http://www.devdiv.com/home.php?mod=space&uid=21083&do=blog&id=4122

读书人网 >移动开发

热点推荐