ios中实现对UItextField,UITextView等输入框的字数限制

本文转载至 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。

代码如下:

view plain

  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;

中来实现。

代码:

view plain

  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. return NO;
  9. }
  10. else
  11. {
  12. NSString  * nsTextContent=string.text;
  13. int   existTextNum=[nsTextContent length];
  14. remainTextNum_=100-existTextNum;
  15. return YES;
  16. }
  17. }

UITextView 除了可以在函数

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

中按照上面类似的办法处理以外,还可以在函数

- (void)textViewDidChange:(UITextView *)textView  中处理。

代码如下:

view plain

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

ios中实现对UItextField,UITextView等输入框的字数限制的相关文章

安卓中实现对SQLITE数据表的增删改查

直接上代码 MainActiviy.java package com.example.sqllitcache; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentValues; import android.content.DialogInterface; import android.database.Cursor; import android.database

java中实现对lib文件中的jar包快速buildpath

当我们把jar文件全部复制到lib后,如果一个一个去buildpath是很麻烦的,这里其实有小技巧的,我们点击第一个jar文件,然后按着shift,再点击最后一个jar文件,就可以实现全选jar包,然后右键-->buildpath即可.

[转]iOS中UITextField 使用全面解析

001//初始化textfield并设置位置及大小002  UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];003  004//设置边框样式,只有设置了才会显示边框样式 005  text.borderStyle = UITextBorderStyleRoundedRect;006 typedef enum {007    UITextBorderStyleNone,008   

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm

iOS Dev (60) 怎样实现 UITextView 中的 placeHolder

iOS Dev (60) 怎样实现 UITextView 中的 placeHolder 作者:阿锐 地址:http://blog.csdn.net/prevention - 跟着你的 UITextView 定义一个 UILabel. UILabel *inputPlaceHolder; placeHolder 是当有内容时不显示.无内容时显示.所以能够为所在的实例相应的类实现 UITextViewDelegate 中例如以下方法. - (void)textViewDidChange:(UITex

Android下通过root实现对system_server中binder的ioctl调用拦截

Android下通过root实现对system_server中binder的ioctl调用拦截 分类: Android2013-06-19 18:09 779人阅读 评论(0) 收藏 举报 作 者: Passion时 间: 2012-10-18,13:53:53链 接: http://bbs.pediy.com/showthread.php?t=157419 Android下通过root实现对system_server中binder的ioctl调用拦截作者:passion2012-10-18关键

iOS中UITextView方法解读

iOS中UITextView方法解读 常用属性解读: @property(nonatomic,assign) id<UITextViewDelegate> delegate; 设置代理属性 @property(nonatomic,copy) NSString *text; textView上的文本 @property(nonatomic,retain) UIFont *font; 设置文本字体 @property(nonatomic,retain) UIColor *textColor; 设置

iOS Dev (60) 如何实现 UITextView 中的 placeHolder

iOS Dev (60) 如何实现 UITextView 中的 placeHolder 作者:阿锐 地址:http://blog.csdn.net/prevention - 跟着你的 UITextView 定义一个 UILabel. UILabel *inputPlaceHolder; placeHolder 是当有内容时不显示,无内容时显示,所以可以为所在的实例对应的类实现 UITextViewDelegate 中如下方法. - (void)textViewDidChange:(UITextV

IOS中调用系统的电话、短信、邮件、浏览功能

iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评论, 收藏, 编辑 --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: 调用系统应用 使用系统服务目 录 短信与邮件 通讯录