iOS UITextView 中英文混输时,自动换行问题及之后的坑!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UITextView 中英文混输时,自动换行问题及之后的坑!相关的知识,希望对你有一定的参考价值。

参考技术A textview进行编辑是中文后面接英文时,会自动换行,导致同一行显示不满。

解决方法如下:

- (void)textViewDidChange:(UITextView *)textView

//防止输入时在中文后输入英文过长直接中文和英文换行

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;

NSDictionary *attributes = @

NSFontAttributeName:[UIFont systemFontOfSize:14],

NSParagraphStyleAttributeName:paragraphStyle

;

textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes];



换行问题解决了,那么新的问题来了,系统中文键盘输入时,中文输入时拼音会先一步显示到文本(这里是我还没选择中文输入内容,拼音就乱入了)

解决方法还是放在textViewDidchange里面

///防止拼音输入时,文本直接获取拼音

UITextRange *selectedRange = [textView markedTextRange];

NSString * newText = [textView textInRange:selectedRange];     //获取高亮部分

if(newText.length>0)



return;



以上方法同样适用于TextField。

以上是关于iOS UITextView 中英文混输时,自动换行问题及之后的坑!的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的 UILabel/UITextView 中处理多种屏幕尺寸的中文自动换行?

[办公自动化]中英文引号错误

如何在 UITextView 中自动换行?

IOS:UITextView 旋转 iOS 7 换行文本

使用 swift (IOS 应用程序) 自动滚动 UITextView

使用故事板、自动布局和 Swift 的多行 UILabel 和 UITextView