Mac_NSTextView_中英混输情况下_inline_上下抖动

问题由来

今天在做项目的时候,发现自定义的 NSTextView 出现了几种情况比较蛋疼

  • 对齐问题,英文对齐,中文偏移

  • 在中英文混输的情况下,会出现之前的文字上下抖动的情况,可以拿出来钉钉试试

先在输入框中输入中文(),空格上屏后,再输入一个英文字符 a

不断地尝试删除 a,再输入 a

你会看到 会随着你的输入和删除上下做轻微的抖动,感觉在拍抖音,给个背景音乐很应景

自己的项目

出现了同样的问题,而且更严重的是,同样的输入框,在作为用户签名的时候,中文会有明显的偏移

英文对齐,中文上偏

解决

尝试了很多办法,其实比较简单,让自定义的 layoutManagertextContainer 去适配一下。
关键代码如下

1
2
3
textStorage.addLayoutManager(layoutManager)
layoutManager.addTextContainer(textContainer)
layoutManager.typesetterBehavior = .behavior_10_2_WithCompatibility

前后比较一下,所有问题都消失了

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×