在不同的窗口中使用阵列控制器

时间:2014-01-11 12:06:46

标签: macos nstableview cocoa-bindings nsarraycontroller

我的MainMenu.xib中有一个NSTableView绑定到一个数组控制器,而该数组控制器又绑定到我的app delegate中的一个可变数组。一切正常,我可以编辑tableview中的项目并将新对象添加到阵列控制器。

现在假设我想添加另一个窗口(即一个新的WindowController),其中tableview也连接到app委托中的可变数组。我该怎么做?

我可以在创建它时将数组传递给新的窗口控制器但我的理解是,如果我将另一个数组控制器添加到NewWindowController.xib,这将是MainMenu.xib中的一个单独的实例 - 这意味着在一个阵列控制器上调用addObject不会更新另一个。

有什么方法可以让2个阵列控制器同步吗?或者有没有办法将NewWindowController中的tableview绑定到app delegate中的数组控制器?

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过继承NSArrayControler并实现单例模式来创建数组控制器的共享实例,也可以将其添加为AppDelegate的属性。