我有一个 UITextView,与 TextKit 堆栈相连:自定义 NSTextStorage 子类和标准 NSLayoutManager + NSTextContainer 实例。
在编辑一个大型文档(~80kb,~200 个 URL 链接)时,我们应用程序的主线程在“链接化”过程中冻结了 10 多秒:URL 检测 + 突出显示。
在 Instruments 会话之后,我发现方法 'NSTextStorage.processEditing()' 被调用了约 800 次——对于上述场景——。
作为记录,UITextView 实例的检测器设置如下:
self.dataDetectorTypes = UIDataDetectorTypeAll;
我测试的第一件事是:使用 Apple 的 NSTextStorage 类,而不是自定义子类。结果完全相同:processEditing 是一个严重的瓶颈。
我正在寻找加快这个过程的方法。任何建议都将受到欢迎!
提前致谢!!