我有一个子类 NSTextView,我正在一个单独的线程中(使用 PerformSelectorOnMainThread:withObject:waitUntilDone:)使用选择器replaceCharactersInRange:withString:、setSelectedRange: 和 insertText: 对其进行操作。当 NSTextView 更新每个操作的显示时,我遇到了文本闪烁和性能不佳的问题。

关于如何控制显示更新的时间,以便我可以仅在实际需要时更新它,有什么建议吗?我尝试使用各种组合 setNeedsDisplay:NO (来自主线程和后台线程,在更新之前和之后),这似乎被忽略了。

预先感谢任何能够提供一些见解的人。

有帮助吗?

解决方案

我认为你应该操纵底层 NSTextStorage 对于文本视图,而不是直接调用视图的事件相关方法。这是模型-视图-控制器架构的一个非常经典的示例:这 NSTextView 是视图和 NSTextStorage 是模型。只要有可能,您都希望直接操作模型,并让控制器/视图层根据需要更新视图。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top