2

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

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

提前感谢任何可以提供一些见解的人。

4

1 回答 1

3

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

于 2010-04-11T19:54:02.090 回答