iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分
在做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输入限制中文输入法和英文输入法 及是否高亮状态区分相关推荐
- QLineEdit输入时自动切换到英文输入法
当我们在实际开发工作中,有些密码输入框为了限制密码的格式,一般密码都不回使用中文输入法,那么我们可以直接将密码输入框在输入时自动切换到英文输入法,并且可以通过正则表达式限制输入框输入的内容,代码如下: ...
- 设置QLineEidt部件输入时自动切换到英文输入法(无法输入中文)
在输入密码时会通过输入法显示密码 只需设置一下LineEdit部件属性即可 setAttribute(Qt::WA_InputMethodEnabled, false); //设置账号输入框点击时无法 ...
- input禁止键盘及中文输入
<input>禁止键盘及中文输入,但又不能用readonly 而且还需兼容ie 和 ff , 为了完成这功能费了蛮大功夫,呵呵,在此记录以便日后之用: Html代码 <!DOCT ...
- vue中input禁止输入中文_input禁止键盘及中文输入,但可以点击
网上找了很多,不实用,要不兼容问题,这个可以! 禁止键盘及中文输入,但又不能用readonly 而且还需兼容ie 和 ff , 为了完成这功能费了蛮大功夫,呵呵,在此记录以便日后之用:另外禁止粘贴 ο ...
- 英文输入法之欧睿英语容错输入法介绍及漫谈
回头07年,什么软件最火.最热.大家竞争最激烈,非中文输入法莫属哈. 最先开始的是sogou拼音输入法,他们的搜索引擎在此输入法面试之前可能并不怎么被人所知道.我也是因为这款输入法才更了解他们公司.此 ...
- iOS textView在调用textViewDidChange方法,中文输入的问题
有时候,需要在textViewDidChange处理时,在中文输入的情况下,例如输入"中",对应的拼音"zhong", 在textViewDidChange的方 ...
- 【Simulator IOS虚拟机】IOS虚拟机设置中文输入
准备从虚拟机录入数据,但是无奈,只能输入英文,中文只能复制粘贴过去,所以找了找,网上教程也没有一个具体详细的,故记录下来. 虚拟机配置: 型号:iPhone 7 Plus 版本:iOS 10.2 简易 ...
- Ubuntu 20.04安装中文输入法和切换中文系统
文章目录 前言 1 安装中文输入法 2 切换中文系统 总结 前言 在 Ubuntu 18.04 系统中安装过 sogou 输入法,主要喜欢它能切换皮肤.这次升级到 Ubuntu 20.04,可能年纪大 ...
- Wine的安装和配置(实现中文输入法和中文的复制粘贴)(转)
Wine的安装和配置(实现中文输入法和中文的复制粘贴)(转) liuspider 最后修订于 2003年4月14日 版本 0.7 本文档最新版可以在 http://xbkconfp.cosoft.or ...
最新文章
- backgroundworker控件的使用(线程传值)
- 【unity】拓展自定义编辑器窗口(二)
- 如何正确的在一个循环中删除ArrayList中的元素。
- java基础Runtime类的使用
- 阻止页面电话号码变蓝
- 【Java每日一题】20170110
- dubbo服务压力测试
- C++通过生日判断星座
- 换硬币 (20 分)Java【循环】
- weidl x DeepRec:热门微博推荐框架性能提升实战
- 67、INGeo:利用占用网格先验加速/减少迭代次数
- iOS第三方直播的集成
- SpringCloud 基础教程(八)-Hystrix熔断器(上)
- 温州市学习摩托车驾照攻略
- 误删服务器里面的文件,服务器文件误删
- stm32之定时器配置
- 笔记本电脑死机重启故障
- 从零开始学习ST/SCL编程语言
- wireshark过滤协议大全
- android高德地图改变绘制点标记位置,绘制点标记-在地图上绘制-开发指南-Android 室内地图SDK | 高德地图API...