博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios中实现对UItextField,UITextView等输入框的字数限制
阅读量:5736 次
发布时间:2019-06-18

本文共 1803 字,大约阅读时间需要 6 分钟。

本文转载至 http://blog.sina.com.cn/s/blog_9bf272cf01013lsd.html

2011-10-05 16:48 533人阅读 评论(0)  举报

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. }  

 

 

 

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;  
你可能感兴趣的文章
Jenkins(二)
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
面试中会遇到的正则题
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
React.js 集成 Kotlin Spring Boot 开发 Web 应用实例详解
查看>>
《图解HTTP》学习笔记(四):返回结果的HTTP状态码
查看>>
翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
查看>>
Spring 学习笔记(一)Spring核心容器
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>
搜索问题的办法
查看>>
微信分销系统商城营销5大重点
查看>>
求职准备 - 收藏集 - 掘金
查看>>