【问题标题】:NSOutlineView with Bindings driven by Core Data带有由核心数据驱动的绑定的 NSOutlineView
【发布时间】:2009-12-23 17:47:55
【问题描述】:

我有一个NSOutlineView 作为我的应用程序的源列表,我的数据模型是使用Core Data 完成的。我想使用绑定(如果可能的话)将这些东西粘合在一起,如下所示:

我的模型中有三个主要实体,例如,我们称它们为“商店”、“汽车”和“人”。

我的目标是让大纲视图有 3 个“组”(可扩展节点,如 iTunes 中的 PLAYLISTS),每个组代表并列出我的一个实体,而且我的窗口底部有三个按钮到“添加商店”、“添加汽车”等,我想连接起来以执行该操作。

到目前为止,在我的窗口笔尖中,我有一个 TreeController,它绑定到我的窗口控制器的 NSManagedObjectContext 实例,但我不知道如何从 TreeController 正确绑定和填充大纲视图。

绑定可以实现吗?我看过一个教程,其中创建了第二个托管对象模型,其中包含大纲节点的实体,但文章中的一些 cmets 说这是一个坏主意。我不确定如何继续,任何帮助都会很棒!

【问题讨论】:

    标签: cocoa core-data cocoa-bindings nsoutlineview nstreecontroller


    【解决方案1】:

    试试Cocoa Bindings Programming topics: Providing Controller Content section

    我所做的是为我的实体创建自定义类,并向它们添加isLeaf 属性。对于顶层(商店、汽车、人员),我返回no。对于叶节点(汽车、人等),我返回 YES

    顶层需要与叶子节点有一对多的关系,我称之为children

    在 Interface Builder 中,我将 NSTreeController 的模式设置为 Entity,名称:Groups。它绑定到 managedObjectContext。在Key Paths 中,我将Children 属性设置为children,并将Leaf 设置为isLeaf

    【讨论】:

    • 对不起,我的意思是大纲视图中的顶级节点将由一个名为Groups 的实体表示,这也正确吗?
    • 我会说一个名为Group 的实体,其名称值为CarsStoresPeople,是的。该实体与其他实体有关系,称为children。您可以使用现有实体,但我为它们创建了 NSManagedObject 的自定义子类以添加 isLeaf 属性。如果您有兴趣,我可以发布我的演示应用程序
    • 如果您不介意发布它,那就太好了,我可以看看所有东西是如何连接起来的 :)
    • 来吧:ctshryock.com/swag/UserDefaults.zip 这只是一个演示应用程序,我拼凑在一起学习使用 NSTreeController 和修补 NSUserDefaults(因此得名)。你可以忽略以下划线开头的文件,我正在修改 MOGenerator。
    • @catsby, ctshryock.com/swag/UserDefaults.zip - 不幸的是,404 Not Found :((只是寻找一个工作示例)
    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多