私はNSCollectionView
約1000個のアイテムをロードする必要があります(アイテムにはテキストのみが含まれ、画像やその他のリッチなものは含まれていません)。
UI が回転していることをユーザーに知らせるために UI を回転させたかったNSProgressIndicator
のですが、インジケーターが UI に表示され、まったく回転しないことがわかりました。実際、データのロード中に UI 全体がハングし、タスクがそのバインディング タスクのメイン スレッドの 100% を占有してNSCollectionView
いるように見えます。NSCollectionView
NSProgressIndicator
バインディング中にスピンすることは可能ですか?
編集:
NSArrayController をデータ ソースとして使用し、NSCollectionView のコンテンツを arrayController.arrangedObjects にバインドします。新しいアイテムが arrayController に追加されると、collectionView が自動的に更新されます。
バインド タスクをセカンダリ スレッドに配置すると、各アイテムが UI に 1 つずつ表示され、バインドするアイテムが約 1000 あるため、それぞれに約 0.5 秒かかることがわかります。タスクの完了には時間がかかりすぎます。 .
私が探しているのは、新しいアイテムを collectionView にバインドする場合、バインディングはメイン スレッドから実行され、progressIndicator がスムーズに回転し、ロード タスク全体が完了すると、collectionView が更新され、progressIndicator がなくなることです。