有一个NSComboBox在其绑定的NSMutableArray更新时进行更新

时间:2012-06-20 15:54:09

标签: cocoa cocoa-bindings nscombobox

假设我有一个带有2个组合框的窗口。控制窗口的NSWindowController有两个可变数组绑定到组合框内容值。

我想要的是,当第一个组合框具有固定值时,第二个组合值取决于第一个组合选择值。

当关联的可变阵列更新时,我应该怎么做才能让第二个组合框重新加载其内容(或者我应该如何更新阵列以实现这一点?)?

1 个答案:

答案 0 :(得分:0)

如果通过其常规访问器方法设置第二个数组的值,则应将正确的更新消息传播到所有绑定值和其他侦听器。

// When first combo box changes value
// NSArray *newArray = // Fancy algorithm..
self.secondArray = newArray;

这应该让第二个组合框更新。

如果您不想更改支持您的属性的NSMutableArray实例,您可以使用讨论here的可变访问器方法。它们将允许您在不更改数组本身的情况下更改可变数组的内容。 KVC / KVO系统会将更改传播给听众。