UITextField限制字数,支持iOS7

解决了iOS7上position对象总是不为nil造成判断不准的问题
- (void)nikeNameTFDidChange {

NSString *toBeString    = self.nickName.text;
// 当前输入法 - 这个判断可以去掉其实
NSString *inputLanguage = [[self.nickName textInputMode] primaryLanguage];

if([inputLanguage isEqualToString:@"zh-Hans"]){ //简体中文输入,包括简体拼音,健体五笔,简体手写
    
    //获取高亮部分
    UITextRange *selectedRange = [self.nickName markedTextRange];
    UITextPosition *position   = [self.nickName positionFromPosition:selectedRange.start offset:0];
    // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
    // DL修改 添加判断条件  || !selectedRange
    if (!position || !selectedRange){
        //非高亮
        [self processNickNameText:toBeString];
    }
}else{
    //中文输入法以外
    [self processNickNameText:toBeString];
}
}
- (void)processNickNameText:(NSString *)toBeString {

 if (toBeString.length > 11) {
    
    self.nickName.text = [toBeString substringToIndex:11];
    [MBProgressHUD showMessage:@"您最多只能输入11个字" toView:self.view hudConfig:nil];
}else if (toBeString.length == 11 && [self.nickName.text isEqualToString:_loginname]) {
    
    self.nickName.text = [self.nickName.text stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"];
    [MBProgressHUD showMessage:@"您的昵称为手机号,将加密展示~" toView:self.view hudConfig:nil];
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,827评论 0 9
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,952评论 0 38
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,595评论 6 30
  • 每次坐车都会很难过。。。 不是车多挤 ,多热,多累,是缺少你爱的人关心,真心的很难过。。。
    Alice随想阅读 265评论 0 0
  • 1、不能因为想弛所以更弛,任务有时需要压 2、威严必须有,否则无法压人 3、插手每个安排,目前的工作而言,只能强压...
    阿殷_c7c6阅读 266评论 0 0