首页 > 代码库 > 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限制文本输入长度进阶之 一