iOS textView输入限制中文输入法和英文输入法 及是否高亮状态区分
2016-06-29 11:38
573 查看
在做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; }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- QQ输入法自动删除其它输入法的解决方法
- Access中字段上自动打开的输入法的解决方法
- C#中Winfrom默认输入法的设置方法
- Android的TextView与Html相结合的具体方法
- Android中实现为TextView添加多个可点击的文本
- android textview 显示html方法解析
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android实现TextView中文字链接的4种方式介绍及代码
- android TextView属性的详细介绍 分享
- 火狐textarea输入法的bug的触发及解决
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法