我花了一天多的时间试图找到一个如何使用NSObjectController
与核心数据绑定的简单示例。所有示例均为NSArrayControllers
NSTableView
绑定。
如何设置一个简单的NSObjectController
核心数据来自动保存和获取数据?假设您想要将具有字符串属性的实体绑定到文本字段,您将如何执行此操作?
答案 0 :(得分:5)
以下是“界面”构建器中的基础知识。
将nstextfield
拖到视图中(来自对象库)
拖动nsobjectcontroller
(同样)
打开绑定检查器。 Option-Cmd-7或View / Utilities / BindingsInspector。
选择上面的nsobjectcontroller
。在BindingsInspector中,底部附近是ManagedObjectContext的参数。单击“绑定到”旁边的复选框。然后选择File'sOwner(从下拉列表中)。文件所有者可能是您的NSDocument。将ModelKeyPath设置为managedObjectContext(注意小写'm')
现在将Utility视图切换到AttributesInspector(Open-Cmd-4)。将模式从“类”设置为“实体”。键入BusinessObject或Model名称。例如“员工”。
选择新的nstextfield
。在BindingsInspector中,选择“值”。勾选“绑定到”并选择上面的nsobjectcontroller
(从下拉列表中)。
对于CONTROLLER KEY,选择“选择”。
对于MODEL KEY PATH,选择一个模型属性(但不是关系),如“name”。
现在通过添加第二个控制器nsarraycontroller进行实验。它们与关系紧密相关,而不是属性。因此,阵列具有多个“内容集”,而不是单个“内容”。它没有任何关系具有底层NSSet,而ALL属性是NSObject的子类。没有int,浮动。但NSNumber,NSString。
选择新的nsarraycontroller。在内容集中选择“绑定到”。选择第一个nsobjectcontroller。 CONTROLLER KEY是“选择”,而MODEL KEY PATH是关系名称,如“employees”
设置包含多个列的NSTableView。 (一个表有很多行,可以容纳集合中的项目,并且有列来容纳实体中的各种属性)
选择一个表格列。选择“绑定到”并选择nsarraycontroller。
这次CONTROLLER KEY是“arrangeObjects”(不是选择)。 MODEL KEY PATH只是一个属性名称,如“name”。
请注意,NSNumber和NSDate更喜欢NSFormatters,因此将它们(从对象库)拖到nstextfield或table列中,以便将数字和日期转换为漂亮的字符串。