在做iOS 的文字输入限制时候,总是在中文输入法状态时候监听到英文字母。

废话不多说,直接上代码,

-(void)textViewDidChange:(UITextView *)textView{NSString *toBeString = textView.text;NSString *lang = [(UITextInputMode*)[[UITextInputMode activeInputModes] firstObject] primaryLanguage]; // 键盘输入模式if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写UITextRange *selectedRange = [textView markedTextRange];//获取高亮部分UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];// 没有高亮选择的字,则对已输入的文字进行字数统计和限制if (!position) {if (toBeString.length >= self.limitMaxNum) {textView.text = [toBeString substringToIndex:self.limitMaxNum];}_textLabel.text=[NSString stringWithFormat:@"%lu/%@",(unsigned long)_textView.text.length, @(self.limitMaxNum)];[_textLabel sizeToFit];} // 有高亮选择的字符串,则暂不对文字进行统计和限制else{}}// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况else{if (toBeString.length >= self.limitMaxNum) {textView.text = [toBeString substringToIndex:self.limitMaxNum];}_textLabel.text=[NSString stringWithFormat:@"%lu/%@",(unsigned long)_textView.text.length, @(self.limitMaxNum)];[_textLabel sizeToFit];}}- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{NSString *lang = [(UITextInputMode*)[[UITextInputMode activeInputModes] firstObject] primaryLanguage]; // 键盘输入模式if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写UITextRange *selectedRange = [textView markedTextRange];//获取高亮部分UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];// 没有高亮选择的字,则对已输入的文字进行字数统计和限制if (!position) {if ([text isEqualToString:@" "] || [text isEqualToString:@"\n"]) {return NO;} else {return YES;}} // 有高亮选择的字符串,则暂不对文字进行统计和限制else{return YES;}}// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况else{if ([text isEqualToString:@" "] || [text isEqualToString:@"\n"]) {return NO;} else {return YES;}}return YES;
}

iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分相关推荐

  1. QLineEdit输入时自动切换到英文输入法

    当我们在实际开发工作中,有些密码输入框为了限制密码的格式,一般密码都不回使用中文输入法,那么我们可以直接将密码输入框在输入时自动切换到英文输入法,并且可以通过正则表达式限制输入框输入的内容,代码如下: ...

  2. 设置QLineEidt部件输入时自动切换到英文输入法(无法输入中文)

    在输入密码时会通过输入法显示密码 只需设置一下LineEdit部件属性即可 setAttribute(Qt::WA_InputMethodEnabled, false); //设置账号输入框点击时无法 ...

  3. input禁止键盘及中文输入

    <input>禁止键盘及中文输入,但又不能用readonly 而且还需兼容ie 和 ff , 为了完成这功能费了蛮大功夫,呵呵,在此记录以便日后之用: Html代码   <!DOCT ...

  4. vue中input禁止输入中文_input禁止键盘及中文输入,但可以点击

    网上找了很多,不实用,要不兼容问题,这个可以! 禁止键盘及中文输入,但又不能用readonly 而且还需兼容ie 和 ff , 为了完成这功能费了蛮大功夫,呵呵,在此记录以便日后之用:另外禁止粘贴 ο ...

  5. 英文输入法之欧睿英语容错输入法介绍及漫谈

    回头07年,什么软件最火.最热.大家竞争最激烈,非中文输入法莫属哈. 最先开始的是sogou拼音输入法,他们的搜索引擎在此输入法面试之前可能并不怎么被人所知道.我也是因为这款输入法才更了解他们公司.此 ...

  6. iOS textView在调用textViewDidChange方法,中文输入的问题

    有时候,需要在textViewDidChange处理时,在中文输入的情况下,例如输入"中",对应的拼音"zhong", 在textViewDidChange的方 ...

  7. 【Simulator IOS虚拟机】IOS虚拟机设置中文输入

    准备从虚拟机录入数据,但是无奈,只能输入英文,中文只能复制粘贴过去,所以找了找,网上教程也没有一个具体详细的,故记录下来. 虚拟机配置: 型号:iPhone 7 Plus 版本:iOS 10.2 简易 ...

  8. Ubuntu 20.04安装中文输入法和切换中文系统

    文章目录 前言 1 安装中文输入法 2 切换中文系统 总结 前言 在 Ubuntu 18.04 系统中安装过 sogou 输入法,主要喜欢它能切换皮肤.这次升级到 Ubuntu 20.04,可能年纪大 ...

  9. Wine的安装和配置(实现中文输入法和中文的复制粘贴)(转)

    Wine的安装和配置(实现中文输入法和中文的复制粘贴)(转) liuspider 最后修订于 2003年4月14日 版本 0.7 本文档最新版可以在 http://xbkconfp.cosoft.or ...

最新文章

  1. backgroundworker控件的使用(线程传值)
  2. 【unity】拓展自定义编辑器窗口(二)
  3. 如何正确的在一个循环中删除ArrayList中的元素。
  4. java基础Runtime类的使用
  5. 阻止页面电话号码变蓝
  6. 【Java每日一题】20170110
  7. dubbo服务压力测试
  8. C++通过生日判断星座
  9. 换硬币 (20 分)Java【循环】
  10. weidl x DeepRec:热门微博推荐框架性能提升实战
  11. 67、INGeo:利用占用网格先验加速/减少迭代次数
  12. iOS第三方直播的集成
  13. SpringCloud 基础教程(八)-Hystrix熔断器(上)
  14. 温州市学习摩托车驾照攻略
  15. 误删服务器里面的文件,服务器文件误删
  16. stm32之定时器配置
  17. 笔记本电脑死机重启故障
  18. 从零开始学习ST/SCL编程语言
  19. wireshark过滤协议大全
  20. android高德地图改变绘制点标记位置,绘制点标记-在地图上绘制-开发指南-Android 室内地图SDK | 高德地图API...

热门文章

  1. 十分欠揍的小学生作文
  2. ide集成开发环境_如何设置集成开发环境(IDE)
  3. 猫咪记单词——NABCD模型分析
  4. 多用户分销商城系统开发及多商家入驻的功能介绍
  5. 一文看懂网上下单的手机流量卡为什么归属都是随机的!
  6. json串消除反斜杠\的方法
  7. 小程序bindtap事件与catchtap事件含义及区别
  8. IEC61131与IEC61499 的集成与融合
  9. html显示上标,JavaScript sup 方法:把字符串显示为上标
  10. GVIM的默认初试界面大小、启动位置设置