【问题标题】:How to use NSObjectController with Core Data?如何将 NSObjectController 与核心数据一起使用?
【发布时间】:2013-05-28 20:24:00
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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 或表格列中,以将数字和日期转换为漂亮的字符串。

    【讨论】:

    • 很好的答案.. 我希望我知道如何适应这个只有一个记录。
    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 2021-07-01
    • 1970-01-01
    • 2011-11-21
    • 2011-01-06
    相关资源
    最近更新 更多