3

我花了一天多的时间试图找到一个简单的例子来说明如何使用NSObjectControllerfor 绑定以及核心数据。所有示例都NSArrayControllersNSTableView绑定有关。

您将如何设置一个简单NSObjectController的核心数据来自动保存和获取数据?假设您想将具有字符串属性的实体绑定到文本字段,您将如何执行此操作?

4

1 回答 1

6

以下是界面生成器的基础知识。

  1. 将一个nstextfield拖入视图(来自对象库)

  2. 拖过一个nsobjectcontroller(同样)

  3. 打开绑定检查器。Option-Cmd-7 或 View/Utilities/BindingsInspector。

  4. 选择上面的nsobjectcontroller。在 BindingsInspector 中,靠近底部的是 ManagedObjectContext 的参数。单击“绑定到”旁边的复选框。然后选择文件的所有者(从下拉列表中)。文件的所有者可能是您的 NSDocument。将 ModelKeyPath 设置为 managedObjectContext(注意小写的“m”)

  5. 现在将 Utility 视图切换到 AttributesInspector (Open-Cmd-4)。将模式从“类”设置为“实体”。输入您的业务对象名称或模型名称。比如“员工”。

  6. 选择您的新nstextfield. 在 BindingsInspector 中,选择“值”。选中“绑定到”并选择以上nsobjectcontroller(从下拉列表中)。

  7. 对于 CONTROLLER KEY 选择“选择”。

  8. 对于 MODEL KEY PATH 选择模型属性(但不是关系),如“名称”。

现在通过添加第二个控制器 nsarraycontroller 来进行实验。绑定到关系,而不是属性。因此,数组具有复数“内容集”,而不是单数“内容”。关系具有底层 NSSet 毫无价值,而所有属性都是 NSObject 的子类。没有整数,浮点数。但是 NSNumber,NSString。

  1. 选择新的 nsarraycontroller。在内容集中选择“绑定到”。选择第一个 nsobjectcontroller。CONTROLLER KEY 是“选择”,而 MODEL KEY PATH 是关系名称,例如“employees”

  2. 设置一个 NSTableView,有几列。(一个表有很多行来容纳集合中的项目,并有列来容纳实体中的各种属性)

  3. 选择一个表格列。选择“绑定到”并选择 nsarraycontroller。

  4. 这次 CONTROLLER KEY 是“arrangedObjects”(不是选择)。MODEL KEY PATH 只是一个属性名称,如“name”。

请注意,NSNumber 和 NSDate 更喜欢 NSFormatters,因此将它们(从对象库中)拖到 nstextfield 或表格列中,以将数字和日期转换为漂亮的字符串。

于 2013-06-04T18:47:07.357 回答