我遇到了一些場景,我想在NSTableView的NSDictionary中顯示一些條目。 (我直覺用戶NSDictionaryController總是挫敗的需要使每個對象執行copyWithZone,我覺得這是一個荒謬的要求是致命的可用性...)將NSArrayController綁定到NSDictionary allValues
而是,我試圖綁定NSArrayController指向NSDictionary的allValues屬性,意圖綁定表中各個對象列的各種屬性。但是,我無法通過數組控制器的Controller Key和Model Key Path屬性找到在Cocoa中指定此綁定的正確方法。
當我嘗試將數組直接綁定到allValues時,數組控制器的arrangedObjects屬性始終爲空 - 即使將對象添加到字典時,當添加由[dictionary willChangeValueForKey:@「allValues」]和[字典didChangeValueForKey:@「allValues」]調用,即使在添加對象後在數組控制器上調用setContent:之後。
當然,我發現這個堆棧溢出線程:
Binding to an NSDictionary's "allValues" array
...並嘗試了各種版本@「@ allValues」示範關鍵路徑領域,但沒有產生預期的效果。
因此,這裏是我的問題:如果我有ArrayControllerOne綁定到一個對象,我想ArrayControllerTwo綁定到一個NSDictionary屬性(稱爲「實例」)內ArrayControllerOne.selection的allValues財產,我應該在進入控制器密鑰和模型密鑰路徑字段?
在此先感謝...
我不明白爲什麼當這個字典是另一個數組控制器中的選擇時,爲什麼要綁定到allValues?我很難想象你想要做什麼。如果你可以給出一個例子,說明哪種數據綁定到arrayController1會有幫助。 – rdelmar
在我的場景中,字典不是「另一個陣列控制器中的選擇」。它只是一個類實例的成員。也就是說,我有一個包含字典成員的對象,並且我想提供一個表,每列都反映了字典中每個* value *的一些信息。我還想讓用戶在表格中選擇一行,並訪問該行表示的字典值。爲了完成這兩項任務,我想創建一個綁定到my_obj.my_dict.allValues的數組控制器,以及一個具有綁定到數組控制器中條目屬性的列表的表。 –