博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS之限制TextField的输入长度
阅读量:5055 次
发布时间:2019-06-12

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

网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度的方法.

我所采用的并不是监听方法而是最不同的代理实现方法,为什么不使用监听呢???
当你看到这篇文章很有可能视是为一件事所苦恼那就是使用监听限制输入长度后不能够完美的控制输入内容.
举一个简单的例子:
你要限制输入长度为30个字符,当你输入30个字符后监听的确可以很好的控制不让你继续输入,但是问题也随之而来,当你把光标移动到输入内容中间的位置后,你是可以继续输入的这种输入让人很苦恼因为当你输入后你的光标会移动到最后,并且限制你继续输入,但是你刚刚输入的内荣却保留在了文本中间,这很不符合要求.
因此在这里采用代理可以很好的实现我们想要的效果,仅仅几行代码希望给你带来帮助.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    if (textField == self.liveThemeTextField) {    //这里的if时候为了获取删除操作,如果没有次if会造成当达到字数限制后删除键也不能使用的后果.        if (range.length == 1 && string.length == 0) {            return YES;        }        //so easy        else if (self.liveThemeTextField.text.length >= 30) {            self.liveThemeTextField.text = [textField.text substringToIndex:30];            return NO;        }    }    return YES;}

 

转载于:https://www.cnblogs.com/rglmuselily/p/8657365.html

你可能感兴趣的文章
BSP创建中的一些问题
查看>>
查询的page集合中修改某字段在页面显示的格式
查看>>
【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
查看>>
Kubernetes 本地仓库
查看>>
Unity 之 rawimage 与image 的区别
查看>>
生产工具的差距导致的生产力(生产效率)的差距
查看>>
使用git将项目上传到github
查看>>
Sqlite-SQLiteHelper类,操作SQLite数据库
查看>>
WPF中进度条控件在后台控制进度
查看>>
如何做高可用的架构设计
查看>>
python3 练习题100例 (一)
查看>>
多行字符串,引号与反引号
查看>>
(转载)Java基础知识总结
查看>>
自动类型转换
查看>>
三维地理信息平台介绍与比较
查看>>
hard(2018.10.18)
查看>>
Mongo连接池操纵MongoOptions
查看>>
UVA 11609 Teams 组合数学+快速幂
查看>>
UVA - 1401 Remember the Word trie+DP
查看>>
1004. Counting Leaves (30)
查看>>