首页 > 移动平台 > 详细

iOS限制文本输入长度进阶之 一

时间:2014-12-19 18:54:07      阅读:218      评论:0      收藏:0      [点我收藏+]
/** 
 *  本文以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限制文本输入长度进阶之 一

原文:http://www.cnblogs.com/binglin92/p/4174561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!