iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分
来源:互联网 发布:火线指挥官 知乎 编辑:程序博客网 时间:2024/05/16 09:42
在做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;}
0 0
- iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分
- ios--uitextfield动态限制输入的字数(解决方案) 汉字和英文状态区别 判断当前输入法是否是中文
- IOS开发 textView输入文字时键盘切换为中文输入法后,第一个输入的字母变成英文
- 在智能ABC输入法的中文输入状态下输入英文
- 【iOS】检测textView输入时,中文输入法的产生的问题
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS textFiled中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- iOS:UITextField中文输入法输入时对字符长度的限制
- Ubuntu 英文状态下,安装使用中文输入法
- 搜狗输入法中文状态下,打出来还是英文
- iOS 限制软盘输入法
- 搜狗输入法输入中文时仍然显示英文
- 解决搜狗输入法输入英文,切换不到中文问题
- Snowflake算法核心
- 极路由+花生壳端口映射搭建管家婆教程
- Git\Github\msysgit\tortoisegit
- 设计模式 ----命令模式 之 管理智能家电
- collectionView代理事件 相关处理 iOS 新手笔记
- iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分
- 网络请求一个蛮好的库
- Android性能优化
- HtmlUnit的简单例子
- Python 核心编程笔记_Chapter_3 Note_3 内存管理_垃圾回收
- XML解析之PULL解析
- Qt 基本绘图技术
- 把PDF文件转换成图片有哪些方法
- 《疯狂Java讲义(第3版)》.(李刚)——类和对象