使用监听的方法实时检测textView输入内容
2015-11-16 15:23
591 查看
使用TextView进行本文输入的时候,一般右下角都会有当前可输入字数限制显示。从最大数到0.达到极限时弹窗显示。
下面就介绍如何使用监听方法来实现字数显示实时跟新:
1、先构造检测函数:
2、让需要监听的TextView控件调用该方法:
这样,每当点击控件开始输入时,便会实时监听字数输入情况。
下面就介绍如何使用监听方法来实现字数显示实时跟新:
1、先构造检测函数:
/** * 监听输入文字长度 * * @param obj <#obj description#> */ - (void)txtRemarkEditChanged:(NSNotification *)obj { UITextView *textView = (UITextView *)obj.object; NSString *toBeString = textView.text; NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式 if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写 UITextRange *selectedRange = [textView markedTextRange]; //获取高亮部分 UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0]; // 没有高亮选择的字,则对已输入的文字进行字数统计和限制 if (!position) { if (toBeString.length > 30) { textView.text = [toBeString substringToIndex:30]; numberLabel.text = @"0"; [self showPromptMessage:@"字数已满" andImageNameType:PromptAlert]; }else { numberLabel.text = [NSString stringWithFormat:@"%d",(30 - toBeString.length)]; } } // 有高亮选择的字符串,则暂不对文字进行统计和限制 else{ } } // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况 else{ if (toBeString.length > 30) { textView.text = [toBeString substringToIndex:30]; numberLabel.text = @"0"; [self showPromptMessage:@"字数已满" andImageNameType:PromptAlert];//弹窗提醒 } else { numberLabel.text = [NSString stringWithFormat:@"%d",(30 - toBeString.length)];//实时显示剩余可输入字数 } } }
2、让需要监听的TextView控件调用该方法:
[[NSNotificationCenter defaultCenter]addObserver:self//声明该监听事件 selector:@selector(txtRemarkEditChanged:)//执行方法 name:UITextViewTextDidChangeNotification object:txtRemark];//目标控件
这样,每当点击控件开始输入时,便会实时监听字数输入情况。
相关文章推荐
- JavaScript基础——函数表达式
- 【CUBE】Oracle分组函数之CUBE魅力
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范
- CGAffineTransformMakeRotation 实现旋转
- PHP、JS、Python,数据库 获取今天是星期几了?[开发篇]
- java中的快捷键
- Alpha版本测试文档
- oracle查看权限
- __asm__ __volatile__内嵌汇编用法
- 资源文件信息工具类--ResourceInfoCalculator
- iOS 设置Button的 初始选中状态
- win7、8、10(64)操作系统安装oracle11g(64)后,在登录时,database显示为空。
- css3太极图效果+自动旋转
- TreeSet中自定义Comparator实现降序
- maven(6)各个生命周期阶段以及与配置文件关系
- Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试
- Entity Framework code first 手动修改数据库的问题
- python url解码
- Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试
- Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试