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

转载 2012年03月28日 17:34:50

原文转自:http://blog.csdn.net/chun799/article/details/7226000


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。

 

     代码如下:

    

  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.  
 
  1. - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text; {  
  2.     if ([@"\n" isEqualToString:text] == YES) {  
  3.         //<span style="font-family: STHeiti; ">响应方法</span>  
  4.         return NO;  
  5.     }  
  6.     return YES;  
  7. }  
这个可以屏蔽returnkey按键换行,响应其他方法

 

 

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

 

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

 

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

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

 

中来实现。

 

   代码:

  

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

 

    代码如下:

    

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

iOS--输入框UITextField输入限制字数

对某些iOS应用来讲,输入框需要有字数的限制,例如,密码要求输入最多6位数。那么如果仅仅只是在- (BOOL)textField:(UITextField *)textField shouldChan...

实现对UITextField ,UITextView的字数限制

第一步、让空间所在的控制器viewController 实现 UITextFieldDelegate协议(针对UITextField) 或者  UITextViewDelegate协议(针对UITex...

jquery实现输入框字数限制代码

  • 2010年06月29日 17:10
  • 20KB
  • 下载

UITextField、UITextView--文本输入框,以及文本输入域

控件都和w'n'g

UITextView & UITextField 实现中英文混合输入的限制

最近项目中有了一个新的需求, 用户输入昵称时可以同时输入中英文, 且有字数限制(一个中文汉字 == 两个字母), 一开始感觉不太难啊, 但实现的过程中却发现不如想象中容易, 这里写一篇博客记录一下:我...

iOS UITextField、UITextView只限输入中文、英文、数字及实时限制字符个数封装实现

引言需求:(输入框限制输入多少字符) 1、一个字母、符号、数字相当于一个字符 2、一个汉字相当于两个字符 3、不能输入特殊字符 4、不能输入emoji表...
  • Yj_sail
  • Yj_sail
  • 2016年12月29日 15:49
  • 2894

多行文本输入框字数限制代码

  • 2016年12月20日 12:11
  • 4KB
  • 下载

js限制输入框字数

"utf-8"> "text" name="" id="" maxlength="6" onkeyup="checkInputCount(this, 6);" />0/6 "text/j...

文本输入框,限制输入字数

个人学习笔记,文本输入框,限制输入字数一:文本输入框,限制输入字数,汉字两个字符,其他数字,符号,字母,回车,空格等一个字符 ...

OSX和JAVA环境下分别设置输入框只能输入数字并限制字数的方法

OSX和JAVA环境下分别设置输入框只能输入数字并限制字数的方法
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实现对UITextField ,UITextView等输入框的 字数限制
举报原因:
原因补充:

(最多只允许输入30个字)