2

セレクターreplaceCharactersInRange:withString:、setSelectedRange:、およびinsertText:を使用して(performSelectorOnMainThread:withObject:waitUntilDone :を使用して)別のスレッドで操作しているサブクラス化されたNSTextViewがあります。NSTextViewがすべての操作の表示を更新するため、テキストがちらつき、パフォーマンスが低下します。

表示が更新されるタイミングを制御する方法についての提案はありますか?実際に必要な場合にのみ更新できますか?無視されているように見えるさまざまな組み合わせsetNeedsDisplay:NO(メインスレッドとバックグラウンドスレッドの両方から、更新の前後)を使用してみました。

洞察を提供してくれる人に事前に感謝します。

4

1 に答える 1

3

NSTextStorageビューのイベント関連のメソッドを直接呼び出すのではなく、テキストビューの基になるものを操作する必要があると思います。これは、Model-View-Controllerアーキテクチャの非常に古典的な例です。NSTextViewはビューであり、NSTextStorageはモデルです。可能な限り、モデルを直接操作し、コントローラー/ビューレイヤーが適切と思われるビューの更新を処理できるようにします。

于 2010-04-11T19:54:02.090 に答える