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
回调中创建了一些示例数据
一旦应用程序启动并运行,这一切都会顺利进行……选择表中的行会导致detailNSCollectionView
显示主项的详细信息。事实上,我所构建的是使用核心数据和Cocoa绑定进行主细节设置的一个很好的开始示例
问题是:当我退出应用程序并重新启动它时,我希望使用最新的主选择(并自动选择相应的详细信息数据集)选择TableView行
我的CD主实体中的一个属性是isSelected
,它是根据上次选择NSTableView
的哪一行设置的
我尝试在主表的“MasterAC.m”中覆盖NSArrayController
。在这里,我尝试从其中调用setSelectionIndex
,以基于isSelected
标志更改阵列控制器的选择。我是从阵列控制器的arrangeObjects
方法中执行此操作的
没有骰子
有人可以帮助在示例应用程序的运行过程中保持表格选择吗?
简而言之,如果我在选择“Parent#3”的情况下退出应用程序,则再次运行该应用程序将导致选择“Parent#3”及其详细信息
关于此问题的其他一些建议使用NSUserDefaults,而不是核心数据来处理此问题。如果你针对的是较新的操作系统,那么最简单的解决方案可能就是使用“状态恢复”。它会进入主表,基本上会为你重新单击所选内容,甚至会滚动到正确的位置。当它起作用时,有点不可思议