Core data 跨运行恢复Core Data Master详细信息选择

Core data 跨运行恢复Core Data Master详细信息选择,core-data,cocoa-bindings,master-detail,Core Data,Cocoa Bindings,Master Detail,我正在尝试在NSTableView应用程序运行期间持久化中选择行 我有一个作为主视图的NSTableView,还有一个作为详细视图的NSCollectionView。我的示例项目在这里: 这两个视图通过Cocoa绑定适当地绑定到nsarraycontroller。它们依次绑定到CoreData存储中的主实体、细节实体和一对多关系“myChildren”。“myDetailAC”内容集绑定到CD关系。在我的应用程序委托中,我在applicationdFinishLaunching回调中创建了一些

我正在尝试在
NSTableView
应用程序运行期间持久化中选择行

我有一个作为主视图的
NSTableView
,还有一个作为详细视图的
NSCollectionView
。我的示例项目在这里:

这两个视图通过Cocoa绑定适当地绑定到
nsarraycontroller
。它们依次绑定到CoreData存储中的主实体、细节实体和一对多关系“myChildren”。“myDetailAC”内容集绑定到CD关系。在我的应用程序委托中,我在
applicationdFinishLaunching
回调中创建了一些示例数据

一旦应用程序启动并运行,这一切都会顺利进行……选择表中的行会导致detail
NSCollectionView
显示主项的详细信息。事实上,我所构建的是使用核心数据和Cocoa绑定进行主细节设置的一个很好的开始示例

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

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

我尝试在主表的“MasterAC.m”中覆盖
NSArrayController
。在这里,我尝试从其中调用
setSelectionIndex
,以基于
isSelected
标志更改阵列控制器的选择。我是从阵列控制器的
arrangeObjects
方法中执行此操作的

没有骰子

有人可以帮助在示例应用程序的运行过程中保持表格选择吗?

简而言之,如果我在选择“Parent#3”的情况下退出应用程序,则再次运行该应用程序将导致选择“Parent#3”及其详细信息

关于此问题的其他一些建议使用NSUserDefaults,而不是核心数据来处理此问题。

如果你针对的是较新的操作系统,那么最简单的解决方案可能就是使用“状态恢复”。它会进入主表,基本上会为你重新单击所选内容,甚至会滚动到正确的位置。当它起作用时,有点不可思议