绑定到另一个nib中的数组控制器以用于检查器窗口

时间:2010-10-23 02:56:26

标签: objective-c cocoa cocoa-bindings nib nsdocument

  • 使用路径selection.type将弹出菜单绑定到数组控制器可以正常工作。
  • 使用路径currentDocument.arrayController.selection.type将弹出菜单绑定到文档控制器只能单向工作(选择中的更改不会传播到弹出菜单)。

如何根据焦点文档将弹出菜单绑定到相应的数组控制器,从而实现类似检查器窗口的功能?

2 个答案:

答案 0 :(得分:0)

它们是相同的阵列控制器,还是Inspector窗口使用的是一个单独的阵列控制器,它恰好由同一个阵列提供?

两个独立的阵列控制器将有两个单独的选择。要解决此问题,请为拥有最终数组的同一对象提供NSIndexSet的第二个属性以供选择,并将两个数组控制器“selectedIndexes绑定到该属性。”

对于弹出菜单的单个(不是多个)选择使用NSIndexSet似乎有些愚蠢,但阵列控制器是这样的通用。

答案 1 :(得分:0)

对于任何苦苦挣扎的人来说,这是一个(丑陋的)解决方法:子类NSArrayController,以便其选择始终返回其所有内容,在NSMutableSet中自己跟踪所选项,并将数组控制器的内容集绑定到该内容集。 (由于某种原因,绑定数组控制器的内容集在整个nib中起作用,尽管绑定弹出菜单的选择索引不会。)