2014-03-26 24 views
4

這已經令人迷惑我小時...NSArrayController的選擇不與NSTableView的結合

更新我有一個對象(CuesDoc)與屬性(NSMutableArray *cuesArray)和其他一些特性。 cues數組包含多個Cue對象。在我的AppDelegate中有一個名爲(CuesDoc*) currentCuesDoc的房產。

在IB中,我有一個NSArrayController,它綁定到AppDelegate.currentCuesDoc.cuesArray

我有一個NSTableView它綁定到NSArrayController,並且可以添加/刪除/編輯表和cuesArray中的值。到現在爲止還挺好。

我有下面的詳細字段,它們綁定到NSArrayController.selection,模型鍵路徑設置爲每個屬性。

當視圖第一次出現時,細節字段會填充表視圖中第一項的內容,但是當我選擇其他行時,細節字段不會更新以反映當前選擇。

我增加了一個觀察員selectionIndexesselectionNSArrayController,並認爲出現的時候,我得到呼籲observeValueForKeyPath:方法一次,但不改變選擇後。

回答

15

您必須將tableView的選擇索引綁定到selectionIndexes的陣列控制器鍵,以使視圖的選擇與控制器的選擇保持同步。選擇綁定與內容綁定分開。

+1

賓果!這工作。出於某種原因,我不記得其他時間單獨綁定選擇。 – AppCrafter

+2

您不必爲基於單元格的NSTableViews執行此操作,僅適用於基於視圖的NSTableViews。 – Dirk

+0

謝謝! (我有沒有提到「謝謝」?) – matt