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

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容