2009-02-12 64 views
0

看看這個偉大的截圖,我想你能想象我能問什麼?刪除正確選擇NSManagedObjects

screenshot http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png 球員:

向右:首選項面板和NSTableView
向左:主窗口與NSPopUpButton(下NSMenu;])

彈出窗口的選定對象綁定到tableview中的其中一個對象。這個醜陋的東西(你可以看到那裏)出現在我從tableview中刪除(在popup選中的)對象中。 我正在使用CoreData,並且NSArrayController綁定到一個實體。

我發現2件有趣的事情:

NSManagedObjectContextObjectsDidChangeNotification 
[NSPopUpButton synchronizeTitleAndSelectedItem]; 

隨着第一我知道,當有人從tableview中刪除一個項目;第二個不能工作,不幸的是我的問題...

所以任何想法如何爆炸這個醜陋的東西? = D

順便說一句:如果你有興趣在這個不錯的應用程序和本地URL縮短,你應該look here

回答

0

我擁有它!
我剛剛解除綁定NSPopUpButton的選定對象並再次綁定它。當所選對象從列表中刪除時,它執行此操作only。 ;)

1

如果我理解了您的關於如何正確構建所有內容的描述,則NSPopupButton中的selectedObject將綁定到NSTableView中的某個值。我的猜測是,您正在使用dataSource方法向表提供數據,並使用綁定來匹配彈出式表中的數據。

您應該爲實際數據集使用NSArrayController,將其內容數組綁定到控制器中的NSMutablearray,並將tableView和NSPopupButton綁定到arrayController,而不是將一個控件綁定到另一個控件。你所描述的問題似乎與NSManagedObject沒有太大關係,除了在這種情況下看到默認的-description實現外,還有以非常規方式使用綁定。

+0

我忘了。我正在使用NSArrayController + CoreData(這是爲什麼NSManagedObject)。其實應該沒有任何描述... – papr 2009-02-13 05:19:22