7

我在文档中找不到他们解释所有这些字段及其含义的地方。特别是“控制器密钥”我不清楚。

4

4 回答 4

5

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

控制器键是您要绑定的(控制器对象的属性)的键。模型关键路径是绑定对象可以通过它向模型对象询问更基本的对象,例如字符串或图像,或其他模型对象(即向下钻取模型)的关键路径。

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

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

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

于 2010-03-14T04:04:05.387 回答
4

控制器键弹出菜单是一种帮助您发现控制器(通常是 NSArrayController、NSObjectController 或 NSTreeController)提供哪些键的方法。

最好的例子是selectionNSArrayControllers 的键,它包含一组选定的对象。令人困惑的是 NSObjectController 也提供了一个“选择”键,尽管控制器只能控制一个对象(因此选择 = 对象)。

我同意这根本不清楚。bind:toObject:withKeyPath:options:当我以编程方式绑定我的对象(即使用该方法)时,我个人开始理解它。

于 2009-03-04T08:10:56.377 回答
1

It has to do with key-value coding. You can bind a control in IB to a value in your controller. To connect that value, you have to specify the keypath to it. For example, if you have a textfield in IB and you want to bind it to say a field called 'name' in your controller, you would specify 'name' as the keypath. You then need to set up your name field in your controller to be accessible through key-value coding. This is done in 10.5 by using the @property and @synthesize specifiers.

于 2009-02-27T17:49:46.760 回答
0

看看这个话题: Cocoa Key Value Bindings: Controller Key的各种选项的解释是什么?

我发布了关于在哪里可以找到所有 Controller Key 的定义的说明。

于 2010-03-13T23:37:11.163 回答