IOS textField(textview)字数判断
textfield 有时会需要设置字数限制,如果只是英文或者符号,可以直接在以下代理方法中判断字数
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
return YES;
}
但是,如果是中文且开启联想的情况下,可能选中(高亮)的字也会加入到字数统计,导致最后的几个字输入失败
解决方法给textfield 添加一个事件,实时监听text的改变
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
(void)textFieldDidChange:(UITextField*)textField{
NSString *lang = textField.textInputMode.primaryLanguage;//键盘输入模式
if ([lang isEqualToString:@"zh-Hans"]) {//中文
if (textField == _nickTextField) {
UITextRange *selectedRange = [textField markedTextRange];
if (!selectedRange) {//无高亮
if (textField.text.length>) {
textField.text = [textField.text substringToIndex:];
[ProgressHUD showWithStatus:@"昵称最多8位"];
}
}
}
}else{//非中文
if (textField.text.length>&&textField == _nickTextField) {
textField.text = [textField.text substringToIndex:];
[ProgressHUD showWithStatus:@"昵称最多8位"];
}
}
if (textField==_nickTextField) {
NSLog(@"_nickTextField:%@",_nickTextField.text);
}else if (textField==_passWordTextField){
NSLog(@"_passWordTextField:%@",_passWordTextField.text);
}else{ }
}
相对于textfield而言,textView 更先进一些,他直接提供了text更改完成的代理方法
-(void)textViewDidChange:(UITextView *)textView{ if (textView.text.length) {
_placeLabel.hidden = YES;
}else{
_placeLabel.hidden = NO;
}
NSString *lang = textView.textInputMode.primaryLanguage;//键盘输入模式
static NSInteger length = ;
if ([lang isEqualToString:@"zh-Hans"]){
UITextRange *selectedRange = [textView markedTextRange];
if (!selectedRange) {//没有有高亮
length = textView.text.length;
}else{ }
}else{
length = textView.text.length;
}
}
IOS textField(textview)字数判断的更多相关文章
- ios textfield / textview长按复制粘贴中文显示
当我们在写应用时要复制粘贴文本框内容时,默认显示的文字为英文字体,可按如下步骤设置,显示中文:
- iOS textfield 限制输入字数长度
iOS textfield限制输入的最大长度 [self.textFiled addTarget:self action:@selector(textFieldDidChange:) forContr ...
- iOS textField输入金额的限制,小数点前9位,后面两位
iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextF ...
- IOS开发中如何判断程序第一次启动(根据判断结果决定是否显示新手操作引导)
IOS开发中如何判断程序第一次启动 在软件下载安装完成后,第一次启动往往需要显示一个新手操作引导,来告诉用户怎么操作这个app,这就需要在程序一开始运行就判断程序是否第一次启动,如果是,则显示新手操作 ...
- iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字
iOS开发-通过正则表达式判断字符串是否为纯阿拉伯数字 简述:NSString * regex_0 = @"\\d{1,}"; /*允许首位为0*/ NSString * re ...
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
ASP.NET MVC Filters 4种默认过滤器的使用[附示例] 过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...
- iOS解决表格中TextField,TextView编辑时,输入框被键盘遮挡的问题
方法1:在原来的 UIViewController 内部再添加一层 UITableViewController 代码如下 : // // ViewController.m // 键盘遮挡问题 // / ...
- iOS TextField用法大全
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...
- IOS TextField设置大全
//初始化textfield并设置位置及大小 //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; ...
随机推荐
- redis服务器
Redis是一个Key-Value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串 ). list(链表). set(集合)和 zset(有序集合). ...
- 图片处理GraphicsMagick & ImageMagick
用Java的ImageIO处理一个大于15M的JPG文件,内存溢出. 于是寻求新的解决方案,用ImageMagicK,发现处理图片速度不令人满意,于是切换至GraphicsMagicK,如下是总结. ...
- [java]删除数组中的某一个元素
package org.company.project.test; import java.util.Arrays; import java.util.Scanner; public class Ar ...
- ansible 简单使用
前面讲完安装,现在说说怎么用 1.创建目录 mkdir -p /etc/ansible 2. 编辑(或创建)/etc/ansible/hosts 并在其中加入一个或多个远程系统:echo '192.1 ...
- python基础3
一.文件操作:打开文件:f = open("db", "r") #只读f = open("db", "w") #只写,注 ...
- IIC总线
一. 概述 1. IIC总线是PHILIPS公司推出的一种串口总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串口总线. 2. IIC总线只有两根双向信号线.一根是数据线SDA,一 ...
- ruby -检查数据类型
HashObj={","language"=>"zh","make"=>"Apple"," ...
- mui框架使用的过程中遇到的几个问题
1.zepto.js和mui一起使用的时候,tap事件会发生两次,这时只要不引用zepto.js的touch.js就可以了,只用mui的tap事件,如: mui(".infor_header ...
- Git过滤文件和文夹
今天是2016年10月份的最后一天,感觉时间过得真的是飞快呢,此刻天下着小雨,天气灰蒙如天每个人的心情一样.在此把这个月的项目上传到git上,就需要过滤一些项目自动生成的不必要的文件,如:bin,ob ...
- Prototype based langue LUA
Prototype-based programming https://en.wikipedia.org/wiki/Prototype-based_programming Prototype-base ...