跨运行恢复核心数据主 - 细节选择

时间:2013-12-11 02:49:36

标签: core-data cocoa-bindings master-detail

我正试图在应用程序运行的NSTableView持续存储中进行行选择。

我有NSTableView作为主视图,NSCollectionView作为详细信息视图。我的示例项目在这里:
http://www.filesend.net/download.php?f=3f34594d71e32b2c1fbef768eccb56b0

这两个视图与Cocoa绑定适当绑定到NSArrayControllers。反过来,它们绑定到主实体,详细实体和CoreData商店中的一对多关系“myChildren”。 “myDetailAC”内容集绑定到CD关系。在我的App Delegate中,我在applicationDidFinishLaunching回调中创建了一些示例数据。

一旦应用程序启动并运行,这一切都运行良好...选择表格的行会导致详细信息NSCollectionView显示主项目的详细信息。实际上,我构建的内容是使用Core Data和Cocoa绑定进行Master-Detail设置的良好开始示例。

问题在于:当我退出应用程序并重新启动它时,我希望使用最新的主选择(并自动选择相应的详细数据集)来选择TableView行。

我的CD Master实体中的一个属性是isSelected,它是根据上次选择NSTableView的哪一行设置的。

我试图在主表的“MasterAC.m”中覆盖NSArrayController。在这里,我试图从其中调用setSelectionIndexes来改变基于{的数组控制器的选择{1}}标志。我是在数组控制器的isSelected方法中完成的。

没有骰子。

任何人都可以帮助您在示例应用的运行中持续保持表格选择吗?

简而言之,如果我选择了“父#3”退出应用程序,那么再次运行应用程序将导致“父#3”及其详细信息被选中。

关于SO的一些其他建议使用NSUserDefaults来解决这个问题,但不是核心数据 Restoring the selection in an NSTableView (NSWindowRestoration)

1 个答案:

答案 0 :(得分:0)

如果您的目标是更新的操作系统,那么最简单的解决方案就是使用“状态恢复”。它将进入主表并基本上为您重新单击选择,它甚至滚动到正确的点。它工作时有点神奇。

相关问题