0

NSCollectionViewにプロトタイプアイテムのグリッドが表示されます。これは、Core Data、Interface Bindings、NSValueTransformerで処理され、実際の画像がない場合はNSCollectionViewItem内にプレースホルダ画像が表示されます。NSCollectionView ManagedObjectを削除するとNSValueTransformerで問題が発生する

NSCollectionViewからアイテムを削除したい場合、コレクションビューから削除しますが、ビューから消える直前のマイナス2秒間、プレースホルダイメージ(NSValueTransformerサブクラスからトリガ)を点滅させます。

MOCのオブジェクトが削除されたことを検出したときに実行中のNSValueTransformerを停止する方法が見つかりません。なぜそれは動いているのですか?

Iが取る手順は、次のとおり

for (MyEntityClass * obj in [myArrayController selectedObjects]) { 

    [myArrayController removeObject: obj]; // This on its own works fine. 
    [managedObjectContext deleteObject: obj]; // This causes a flash 

} 

私は(arrayControllerから削除せず)MOCからオブジェクトを削除する場合は、マイクロ秒のプレースホルダ画像を点滅。

MOCオブジェクトの削除を停止して、ビューからNSValueTransformerを削除する前にCollectionViewにNSValueTransformerを実行させないようにする方法はありますか?

ArrayController removeObjectとアイコンの点滅を修正するMOC deleteObjectの間に遅延を追加しようとしましたが、ユーザが一度に項目のグループを削除するとコアデータフィールドにエラーが発生することはありません。

オブジェクトをコレクションビューから削除する直前にプレースホルダイメージを点滅させないようにするためのアイデアはありますか?

答えて

0

解決しました。

問題は、managedObjectContextをforループ内に保存していることが原因です(上記のサンプルコードでは示されていません)。 MOCが保存すると、グリッチの原因となったアニメーションのためにオブジェクトが削除されている間に、collectionViewがリフレッシュされていました。

関連する問題