NSTextView の更新を制御してちらつきに対処し、速度を向上させます

StackOverflow https://stackoverflow.com/questions/2618434

  •  26-09-2019
  •  | 
  •  

質問

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

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

洞察力を提供できる方に事前に感謝します。

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top