我想让几个NSPopUpButtons与同一个模型对象保持同步。我刚刚熟悉绑定并实现了以下方案。
这是一个糟糕的主意吗?
这里每个NSPopUpButton都有自己的NSArrayController。每个NSArrayController从我的模型层中的相同 NSMutableArray数据源获取其内容。
我在模型数组(上例中的动物数组)中添加和删除对象时发现了一些奇怪的问题,并且想知道这种方法的可行性,或者是否有更好的方法可以保持多个视图同步同一型号?
答案 0 :(得分:1)
只要您在主线程中保留对模型的更改,就可以这样做。
每个NSArrayController都会侦听来自NSMutableArray的KVO通知,并会相应地自行更新。
如果您通过其中一个NSArrayController更改数组,它将更新您的NSMutableArray,这将再次触发将被其他两个NSArrayControllers捕获的KVO通知。
以符合KVO的方式更新NSMutableArray非常重要。即您应该使用mutableArrayValueForKey:
返回的数组代理