gpt4 book ai didi

cocoa - 多个 NSArrayController 可以控制同一个数组吗?

转载 作者:行者123 更新时间:2023-12-03 17:11:52 24 4
gpt4 key购买 nike

我想让多个 NSPopUpButton 与同一模型对象保持同步。我刚刚熟悉绑定(bind)并实现了以下方案。

Controllers

这是一个糟糕的主意吗?

这里每个 NSPopUpButton 都有自己的 NSArrayController。每个 NSArrayController 从我的模型层中的相同 NSMutableArray 数据源获取其内容。

在向模型数组(上例中的动物数组)添加和删除对象时,我注意到一些奇怪的问题,并且想知道这种方法是否可行,或者是否有更好的方法来保持多个 View 同步同一型号?

最佳答案

只要您将对模型的更改保留在主线程中,您应该可以很好地执行此操作。

每个 NSArrayController 都会监听来自 NSMutableArray 的 KVO 通知,并相应地更新自己。

如果您通过其中一个 NSArrayController 更改数组,它将更新您的 NSMutableArray,这将再次触发 KVO 通知,该通知将被其他两个 NSArrayController 捕获。

以符合 KVO 的方式更新 NSMutableArray 非常重要。也就是说,您应该使用 mutableArrayValueForKey: 返回的数组代理

关于cocoa - 多个 NSArrayController 可以控制同一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21781730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com