我遇到过一些情况,我想在NSTableView的NSDictionary中显示一些条目。 (我对用户NSDictionaryController的直觉总是被使每个对象实现copyWithZone的需要所挫败,我发现这是对可用性造成致命威胁的荒谬要求。)
相反,我试图将NSArrayController绑定到NSDictionary的allValues属性,目的是将表的各个列绑定到数组中对象的各种属性。但是,我找不到通过数组控制器的Controller Key和Model Key Path属性在Cocoa中指定此绑定的正确方法。
当我尝试将数组直接绑定到allValues时,即使将对象添加到字典中,并且添加内容由[dictionary willChangeValueForKey:@“ allValues”]和[dictionary didChangeValueForKey:@添加对象后,即使在数组控制器上调用setContent:之后,也会调用“ allValues”]。
当然,我发现了这个堆栈溢出线程:
Binding to an NSDictionary's "allValues" array
...并在“模型键路径”字段中尝试了各种版本的@“ @ allValues”,但没有一个产生预期的结果。
所以这是我的问题:如果我将ArrayControllerOne绑定到对象,并且我想将ArrayControllerTwo绑定到ArrayControllerOne.selection中NSDictionary属性(称为“实例”)的allValues属性,则应该在Controller Key和模型关键路径字段?
提前致谢...
最佳答案
您一定错过了一个,因为我发现可以通过使用dict。@ allValues(不带引号)将数组控制器的内容数组绑定到字典的allValues,其中dict是字典的属性名。为什么不起作用,我不知道-我找不到任何文档。
顺便说一句,如果我向字典添加新的键值对,则使用self.dict = _dict;获取表视图以进行更新。