我在主窗口上使用 NSOutlineView 启动了一个基于文档的小应用程序。我在模型类中使用 NSCoding 协议将模型保存在文件中,一切都很好。
接下来,我想保存用户界面(窗口大小和位置、大纲视图中的扩展项目、选择...),我发现 Lion 中添加了 Resume 功能。
所以我尝试实现它,我在主窗口和大纲视图中添加了一个自动保存名称,设置了 autosaveExpandedItems 属性并在大纲视图的数据源中实现了 outlineView:itemForPersistentObject: 和 outlineView:persistentObjectForItem: 方法。
那行得通,但是当我创建/打开另一个文件然后关闭它时,其他文件的扩展项状态将设置为关闭文件的状态。
就像应用程序只为所有文档保存一个窗口,而不是为每个文档保存一个窗口。
我对自动保存和恢复有点迷茫,是相同的功能还是两个完全不同的功能?
我可以使用它来保存窗口状态还是需要将其保存在我的模型中?
谢谢