我有一個NSCollectionView顯示原型項目的網格,這是所有通過核心數據,接口綁定和NSValueTransformer處理,以顯示NSCollectionViewItem中的佔位符圖像,如果沒有真實圖像存在。NSCollectionView刪除ManagedObject導致NSValueTransformer運行問題
當我想從NSCollectionView中刪除一個項目時,它將它從集合視圖中刪除,但在佔位符圖像從我的NSValueTransformer子類中觸發後,在視圖消失之前持續一個微秒。
我找不到一種方式來停止NSValueTransformer運行,當它檢測到MOC中的對象已被刪除。爲什麼它還在運行?
我採取的步驟如下:
for (MyEntityClass * obj in [myArrayController selectedObjects]) {
[myArrayController removeObject: obj]; // This on its own works fine.
[managedObjectContext deleteObject: obj]; // This causes a flash
}
如果我只是刪除從MOC的對象(不脫離arrayController除去)其閃爍用於微第二佔位符圖像。
有沒有辦法阻止刪除的MOC對象導致CollectionView運行NSValueTransformer從視圖中刪除它之前?
我試着在ArrayController removeObject和MOC deleteObject之間添加一個延遲,它修復了圖標的閃爍,但是如果用戶一次性刪除一組項目,則會導致核心數據字段不能爲零錯誤。
在將對象從集合視圖中刪除之前停止佔位符圖像閃爍的任何想法?