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

最大的区别,uitextfield不支持多行文本,uitextview支持

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

 

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

 

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

 

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

 

           对于UITextField 是函数

 -(BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string;

 

      或者

           对于UITextView是函数

 

- (BOOL)textView:(UITextView *)textViewshouldChangeTextInRange:(NSRange)rangereplacementText:(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;  
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值