NSObjectController及其子类返回选择的代理对象。我想了解他们选择以这种方式设计的原因。文档似乎没有说明为什么会这样。
答案 0 :(得分:4)
Apple的Cocoa Bindings Programming Topics有这样的说法:
您可以建立与控制器选择方法的绑定或 selectedObjects方法。但是,你应该避免通过绑定 selectedObjects数组,例如selectedObjects.name。相反,你 应该使用selection.name。同样,您应该避免观察键 通过selectedObjects返回的数组。代理返回 选择在管理键值观察变化方面更有效 随着选择的改变。
我想你会发现你的答案在于最后一句话。
对于它的价值,[objectController valueForKeyPath:@"selection.self"]
返回所选对象本身。
答案 1 :(得分:0)
Also:
通常您需要直接访问当前选择的对象 控制器,而不是选择返回的代理对象。 NSObjectController及其子类提供selectedObjects 允许你这样做的方法。此方法返回一个数组 包含接收器当前选择的对象。 NSObjectController的实现返回一个包含的数组 单个对象,内容对象。