我有一个想要显示我的应用的汇总使用数据的视图。方便的是,我有一个cocoa核心数据实体,其中所有的使用数据都是预先聚合的(所以它只有一行)。我想将实体中的每个单独属性绑定到不同的NSTextFields(例如,不在NSTableView中)。
这似乎不是核心数据+界面构建器处理得很好的使用模式。到目前为止,我正在做的是将我的聚合属性复制到NSUserDefaults并将我的文本字段绑定到默认值。我想要一个更好,更优雅的方式来做到这一点。
那里有更好的想法吗?我是否需要用一个很大的线索砸在脑袋里?
一如既往地感谢阅读...
答案 0 :(得分:1)
好的,我只是用自己的大胖线索打了自己的脑袋。 解决方案是使用NSObjectController。
就我而言,它在标题中看起来像这样:
NSObjectController *dataCtrl;
...
@property (nonatomic, retain) IBOutlet NSObjectController *dataCtrl;
在实现中就像这样
@synthesize dataCtrl;
...
- (void)windowDidLoad
{
NSManagedObject *totals = [StatsSupport getTotalRecord];
[[self dataCtrl] setContent:totals]; // where the rubber meets the road
[super windowDidLoad];
}
当然+ [StatsSupport getTotalRecord]是你的基本核心数据获取类型代码,如果你读到这一点,你就会知道它的外观。 (它可能已经存在,因为你需要这个代码或类似的东西只是为了执行正常的数据读取/更新)
最后做一个快乐的舞蹈,因为你让可可为你做了一些工作。
答案 1 :(得分:0)
-(void)updateFields {
// fetch the row from the persistent store into your custom object
// then get a reference to the data in your object, e.g.
MyDataObject *data = [resultsArray objectAtIndex:0];
myTextField1.text = [NSString stringWithFormat:@"%d", [data.anIntegerValue intValue]];
myTextField2.text = data.aTextValue;
// etc...
}