红色虚线的拼写检查属性在iOS TextKit应用中消失了 那是什么问题?注释

我一直在努力解决这个问题。希望有人对iOS上的TextKit有所了解,可以帮助解释该过程,并指导我解决此问题。

在UITextView上启用拼写检查后,iOS会识别拼写错误,并在可疑单词下方添加红色虚线,然后可以利用这些单词提供替换建议。

我的应用程序使用带有自定义TextKit层和自定义NSTextStorage子类的UITextView进行语法突出显示。我的实现与拼写检查过程存在某种冲突。症状如下:

  • 用户键入拼写错误的单词。
  • iOS识别拼写错误,并添加红色虚线。
  • 用户不断输入下一个单词,红色虚线消失。
  • 该单词保留其“拼写错误”状态,因为它仍然可以被点击并提供替换建议,但是没有视觉上的迹象表明拼写问题。

以下是简短的YouTube视频,演示了这一操作:

https://youtu.be/8FqRTpBczOA

之所以出现此问题,是因为我的语法突出显示实现必须扩展考虑的属性更改范围,因为键入的新字符可能会影响周围的属性。如果我不扩展范围并处理这些其他属性,则红色虚线仍会保留(但是我的语法突出显示无效!)。

我已经解决了这个问题很多,但是还没有找到文档,示例或红色虚线实现方式的细节,以弄清楚在NSTextStorage子类处理属性更新时如何保留它们。

在NSTextStorage子类中调用processEditing时,在属性字符串上没有可以标识那些红色虚线的属性。

如果我在addAttributes的NSTextStorage上调用setattributesprocessEditing时,它似乎会踩在红色虚线上……尽管如此,但是替换建议是标记的遗骸。

那是什么问题?

真的,我希望能解释一下在文本呈现过程中,拼写检查器如何以及何时进行干预,以及如何对那些拼写错误的单词进行标记以得到红色虚线,以及在添加属性时如何避免挤压该标记支持语法突出显示。

可能有相关文档,但是我的Google-fu并没有产生任何帮助。

注释

这个相同的TextKit堆栈在macOS上没有相同的问题。这是特定于iOS的。

hufengguang 回答:红色虚线的拼写检查属性在iOS TextKit应用中消失了 那是什么问题?注释

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3157944.html

大家都在问