NSTextView の更新を制御してちらつきに対処し、速度を向上させます
-
26-09-2019 - |
質問
セレクター replaceCharactersInRange:withString:、setSelectedRange:、insertText: を使用して、別のスレッド (performSelectorOnMainThread:withObject:waitUntilDone: を使用) で操作しているサブクラス化された NSTextView があります。NSTextView が操作のたびに表示を更新するため、テキストがちらつき、パフォーマンスが低下します。
実際に必要な場合にのみ更新できるように、表示が更新されるタイミングを制御する方法についての提案はありますか?setNeedsDisplay:NO (更新の前後にメインスレッドとバックグラウンドスレッドの両方から) をさまざまな組み合わせで使用してみましたが、無視されているようです。
洞察力を提供できる方に事前に感謝します。
解決
根本的な部分を操作する必要があると思います NSTextStorage
テキスト ビューの場合は、ビューのイベント関連メソッドを直接呼び出すのではなく、これは、Model-View-Controller アーキテクチャの非常に古典的な例です。の NSTextView
ビューと NSTextStorage
がモデルです。可能な限り、モデルを直接操作し、コントローラー/ビュー レイヤに適切と思われるビューの更新を処理させたいと考えます。
所属していません StackOverflow