如何将NSObjectController与Core Data一起使用?

时间:2013-06-02 15:00:38

标签: macos cocoa core-data cocoa-bindings nsobjectcontroller

我花了一天多的时间试图找到一个如何使用NSObjectController与核心数据绑定的简单示例。所有示例均为NSArrayControllers NSTableView绑定。

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

1 个答案:

答案 0 :(得分:5)

以下是“界面”构建器中的基础知识。

  1. nstextfield拖到视图中(来自对象库)

  2. 拖动nsobjectcontroller(同样)

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

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

  5. 现在将Utility视图切换到AttributesInspector(Open-Cmd-4)。将模式从“类”设置为“实体”。键入BusinessObject或Model名称。例如“员工”。

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

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

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

  9. 现在通过添加第二个控制器nsarraycontroller进行实验。它们与关系紧密相关,而不是属性。因此,阵列具有多个“内容集”,而不是单个“内容”。它没有任何关系具有底层NSSet,而ALL属性是NSObject的子类。没有int,浮动。但NSNumber,NSString。

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

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

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

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

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