如何将同一个xib文件绑定到不同的核心数据实体
Posted
技术标签:
【中文标题】如何将同一个xib文件绑定到不同的核心数据实体【英文标题】:How to bind the same xib file to different core data entities 【发布时间】:2012-03-30 07:44:32 【问题描述】:我的核心数据中有 4 个实体具有相同的父实体。它们几乎具有相同的属性。
对于这 4 个实体中的 3 个,我需要使用相同的 xib fie(用于修改实体属性的面板)。剩下的一个正在使用另一个面板。如果用户选择了更多实体,则使用相同的 NSTextField 来修改所有这些选定实体中的相应属性。
如何将我的 xib 文件中的对象绑定到不同的实体,我应该将它们绑定到父实体吗? (虽然在父级中我没有所有属性)。
我在 xib 文件中有很多文本字段,以编程方式绑定它们将是很多工作。在界面生成器中绑定要容易得多。
谢谢
【问题讨论】:
【参考方案1】:假设您在 IB 中使用某种控制器(NSArrayController
或 NSObjectController
)来管理您的实体,您可以在视图控制器中为该控制器创建一个出口。
然后在awakeFromNib
方法中你可以这样做:
switch (myChoosenEntity)
case 1:
[[self myEntityController] setEntityName: @"MyFirstEntity"];
break;
case 2:
[[self myEntityController] setEntityName: @"MySecondEntity"];
break;
default:
break
然后将设置实体控制器以使用您选择的实体。这种方法仍然允许您在 IB 中进行绑定。唯一的缺点可能是 IB 无法向您显示要绑定的可能属性,因为实际实体仅在运行时确定。
【讨论】:
以上是关于如何将同一个xib文件绑定到不同的核心数据实体的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSTreeController 的孩子绑定到订购到多关系的核心数据?
使用 NSDocument 时如何将情节提要视图绑定到 Core Data 实体?
核心数据、绑定、NSArrayController 和表视图 - 如何生成核心数据上下文的视图