您好我正在使用NSTreeController来控制NSOutlineView。此应用程序将书签从文件加载到应用程序。与ADC中的SourceView示例一样:
http://developer.apple.com/mac/library/samplecode/SourceView/index.html
我的问题是如何在用户进行更改后将书签保存到文件。我应该在应用程序内部维护数组/树并在退出之前保存,还是有更简单的方法?
答案 0 :(得分:2)
您想要撤消 MyWindowController.m 的 populateOutline 方法中发生的操作。此方法将plist读入一个字典,从该字典中读取值,并使用它来构建树。从该方法开始,然后按照代码查看它是如何构建树的。它使用 BaseNode 和 ChildNode 类将数据模型构建为树(我不确定为什么他们不只是使用 NSTreeNode )。您希望颠倒该过程,最后使用NSDictionary。然后,您可以使用 writeToFile:atomically:将字典保存回磁盘。
这可能会变得像您想要的那样复杂。例如,当前代码在单独的线程中加载字典文件,因此您也可以保存在单独的线程中。或者,您可能希望在每次编辑后保存,再次在单独的线程中保存。