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; ...
随机推荐
- Ruby-随机数
--随机0-1 rand --随机一个范围 rand(1..100)
- completionService
我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 当我们使用Exe ...
- Cookie和Session的区别详解
本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...
- ORM系列之二:EF(5) Model First
前面我们已经介绍过EF中Code First开发模式,简而言之,就是不管三七二十一直接写代码,不过对于很多开发人员来说,可能并不习惯这样来开发,并且安装标准的开发流程,应该是先建模再进行编码,当然EF ...
- 点击input时,里面默认字体消失显示
点击input时,点击input里面默认字体消失显示: <input type="" name="" id="" value=&quo ...
- 快速原型设计工具-Axure RP的介绍及简单使用(生产初期向客户展示设计产品的原型-也就是展示产品)
啧啧~~ 给大家介绍一款超棒的原型设计工具--美国Axure Software Solution公司旗舰产品Axure RP 这款工具通俗的说呢,就是在项目整体需求考察后对整体设计一个简要性概括!设计 ...
- [SharePoint 2013] Create event receiver for external list
Main list for creating event receiver for external list Subscribe storage, it could be data table ...
- Trace-语句启动Profiler中暂停的跟踪会出现什么状况
2016-09-08 22:09 整理,未发布Profiler创建客户端跟踪.常规页不保存文件.不勾选服务器处理跟踪数据:事件选择RPC:Completed和SQL:BatchCompleted,列筛 ...
- python中使用正则表达式
正则表达式元字符:. ^ $ * + ? {} [] \ | ()第一部分:1.[] 常用来指定一个字符集,用于匹配其中的一个字符:^,$元字符在里面不起作用,但是+-*等符号在[]中还是有特殊含义的 ...
- 搭建Python+Django开发环境
第一步:安装python. 常见的windows系统,直接python网站下载 最新的版本python3.5. python安装好之后,配置好环境变量.使得python和 pip命令能够正常使用. 第 ...