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

Jas*_*ade 3 macos cocoa core-data cocoa-bindings nsobjectcontroller

我花了一天多的时间试图找到一个如何使用NSObjectControllerfor binding和核心数据的简单示例.所有示例都NSArrayControllers带有NSTableView绑定.

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

Gab*_*bow 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".

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

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

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

  3. 选择一个表列.选择"绑定到"并选择nsarraycontroller.

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

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