我正在使用 CoreText 实现自定义 UITextView(基于 EGOTextView)并符合UITextInput
协议。除了一件烦人的事情外,我几乎所有东西都运行良好(呸!)。自动更正建议文本垂直镜像,其突出显示略微向右移动。这是它的样子:
在文本字段中,我输入了“helo”,它会自动更正为“帮助”。如您所见,自动更正文本(而不是其背景)是垂直镜像的。此外,它向右水平偏移约 7pt。
为了解决第二个问题(水平偏移),我已经验证该firstRectForRange:
方法返回正确的CGRect
. 我已经通过两种方式做到了这一点。第一个是目视检查当我显示 a 时UIMenuController
它是否出现在正确的位置(确实如此)。二是围绕CGRect
返回的 by画一个轮廓firstRectForRange:
。这是与CGRect
概述相同的文本。
如您所见,正确的区域被勾勒出来,但自动更正被错误地标记/突出显示。
我很乐意分享任何代码,但这是一个庞大的课程,我现在很困惑。任何指针将不胜感激!
编辑:源代码可在此存储库的 Experimental 分支上找到:github.com/cbrauchli/EGOTextView。