`

实现对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
分享到:
评论

相关推荐

    ios-这是一个文本输入限制字数的通用输入框控件,简单实用。.zip

    这个名为“ios-这是一个文本输入限制字数的通用输入框控件,简单实用”的压缩包提供了一个解决方案,允许开发者轻松实现对用户输入字数的限制。这个控件简化了处理文本输入长度的复杂逻辑,确保用户不会超过预设的...

    ios-一句代码限制文本输入字数.zip

    总之,通过合理地运用Swift的编程特性,我们可以轻松实现对iOS应用中文本输入框字数的限制,提供更好的用户体验。这个压缩包文件中的"LimitInput"很可能就是这样一个实用的代码示例,帮助开发者快速理解和应用这个...

    swift-InputKit一个iOS中限制文本输入字数的工具箱灵感来自BlocksKit

    InputKit就是这样一个工具箱,它专门为iOS开发者提供了方便的方式来限制文本输入框的字数,灵感来源于知名的BlocksKit库。 InputKit是用Swift编写的,因此它可以充分利用Swift的语法优势,提供简洁、易读的API。...

    iOS开发中Swift3 监听UITextView文字改变的方法(三种方法)

    在项目中使用文本输入框出UITextField之外还会经常使用 UITextView ,难免会有需求监听UITextView文本框内文本数量.下面介绍在swift3中两种常用方式 方式一: 全局通知 1.注册通知 在合适位置注册监听UITextView文本...

    登陆界面和进入文本界面Demo

    在这里,开发者会获取`UITextField`的输入值,进行简单的验证(如非空检查、长度限制等),然后可能调用网络服务接口进行用户认证。如果认证成功,应用会根据需求切换到文本界面或其他主界面;如果失败,则显示错误...

    输入数字的限制

    作者631106979,源码WCLNavigationController,UITextField和UITextView,我们经常使用,我们要使输入框只输入电话号码,而且只能输入11位,我们发微博,要限制字数。 使用方法: 调用setValue: forKey:这个方法 ...

Global site tag (gtag.js) - Google Analytics