iOS TextField 针对中文键盘限制输入字符串长度

textField 添加监测事件

[self.nameTextField addTarget:self action:@selector(textFieldValueChange:) forControlEvents:UIControlEventEditingChanged];

实现监测事件

 NSInteger kMaxLength =16;
    NSString*toBeString = textField.text;
    NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
    if([lang isEqualToString:@"zh-Hans"]) {
        UITextRange*selectedRange = [textField markedTextRange];
        //获取高亮部分
        UITextPosition*position = [textField positionFromPosition:selectedRange.start offset:0];
        if (!position) {// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
            if(toBeString.length> kMaxLength) {
                textField.text= [toBeString substringToIndex:kMaxLength];
            }
        }else{//有高亮选择的字符串,则暂不对文字进行统计和限制
            
        }
    }else{//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
        if(toBeString.length> kMaxLength) {
            textField.text= [toBeString substringToIndex:kMaxLength];
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 最近在开发的时候遇到一个问题,就是需要限制TextField中输入的字符串的长度,但是不是直接根据长度限制,而是根...
    Fiona_L阅读 12,495评论 7 19
  • 要限制一个UITextField的输入字数,很多人首先想到的是通过UITextFieldDelegate下面这个代...
    陈大帅阅读 6,435评论 1 2
  • 突然发现,那些年曾经觉得很珍惜的一切,都变得可有可无了。 我爱过的人,突然就不爱了。 八年求而不得,换谁都会累吧。...
    西木小姐阅读 2,361评论 0 0
  • 假设春天死了 花会开在哪个季节 我们会相遇在哪个季节 假设春天死了 四月的雷雨会不会 洗掉岁月的忧伤 四月的闪电会...
    一只独角羊阅读 2,350评论 3 2