"控制器密钥"在Interface Builder> Inspector> Bindings中的含义是什么?

Tha*_*nks 5 cocoa interface-builder key-value-observing key-value-coding cocoa-bindings

我无法在文档中找到他们解释所有这些领域及其含义的内容.特别是"控制器键"对我来说并不清楚.

Pet*_*sey 5

[复制我对另一个问题的回答......]

控制器键是您要绑定到的(控制器对象的属性)的键。模型关键路径是绑定对象可以向模型对象询问更多基本对象(例如字符串或图像)或其他模型对象(即,深入到模型中)的关键路径。

一个例子:假设你在一个数组控制器中有一个 Person 对象,每个 Person 都有一个name. 您将表列绑定到数组控制器、控制器键arrangedObjects(从而获得模型对象)、模型键路径name(从而获得值对象)。

一个更复杂的例子:假设你有一个 Departments 数组控制器。每个部门都包含人员(部门内的员工)。您可以将您的 People 数组控制器绑定到 Departments 控制器、控制器键arrangedObjects(获取 Department 模型对象)、模型键路径@distinctUnionOfObjects.employees(获取 Person 模型对象),然后将表列绑定到 People 控制器、控制器键arrangedObjects、模型键路径name.

那张桌子是为为你公司工作的人准备的;如果您有一个单独的潜在员工表,您也可以为他们创建 Person 对象,并且他们不会出现在现有员工的表中,因为他们不在部门中。当您雇用他们时,您会将他们添加到一个或多个部门;然后,它们会自动出现在 People 数组控制器中,因为该数组控制器正在观察employees所有部门的。


Mat*_*ong 1

它与键值编码有关。您可以将 IB 中的控件绑定到控制器中的值。要连接该值,您必须指定它的键路径。例如,如果 IB 中有一个文本字段,并且想要将其绑定到控制器中名为“name”的字段,则可以将“name”指定为键路径。然后,您需要在控制器中设置名称字段,以便可以通过键值编码进行访问。这是在 10.5 中通过使用 @property 和 @synthesize 说明符完成的。