首页 > 代码库 > iOS限制文本输入长度进阶之 一
iOS限制文本输入长度进阶之 一
/** * 本文以UITextField 最大文本长度=10为例 */
首先想到的自然是delegate中的方法@selector(textField:shouldChangeCharactersInRange:replacementString:)
1.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (textField.text.length >= 10){ return NO; } return YES;}
欢欢喜喜的去测试,输入9个数字后输入一个拼音字母后就再也无法输入了,好捉急,还无法删除,于是使劲试验,竟然发现下面的规律,好欢喜
/** * @param range .length == 1表示删除字符 .length == 0 表示输入字符 */
2.- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (range.length == 1){ return YES; } if (textField.text.length >= 10){ return NO; } return YES;}
今天无意间发现另外一种方式,只把1.里中的代码改了一点,就可以实现2.中的功能,见3.~~~~将文本长度限制在10以内,同时可以删除,只不过如果最后一个还是未输完的拼音在,就无法再输入了
3.- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (range.location >= 10){ return NO; } return YES;}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
结果差强人意,如果用户最终还想输入一个字,会始终无法输入,好难受~
^ ^ 不过告诉你们一个好消息,我已经找到继续输入汉字的办法啦
下一篇文章我将把我的方法告诉大家,如果有更好的办法,欢迎分享给我
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iOS限制文本输入长度进阶之 一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。