1

您好我正在使用 NSTreeController 来控制 NSOutlineView。此应用程序将书签从文件加载到应用程序。与 ADC 中的 SourceView 示例一样:

http://developer.apple.com/mac/library/samplecode/SourceView/index.html

我的问题是一旦用户进行更改,我如何将书签保存到文件中。我应该在我的应用程序内部维护数组/树并在退出前保存还是有更简单的方法?

4

1 回答 1

2

您想反转发生在MyWindowController.m的populateOutline方法中的操作。此方法是将 plist 读入一个字典,从该字典中读取一个值,并使用它来构建树。从该方法开始并按照代码查看它是如何构建树的。它使用BaseNodeChildNode类将数据模型构建为树(我不确定他们为什么不只使用NSTreeNode)。你想扭转这个过程,最终得到一个 NSDictionary。然后,您可以使用writeToFile:atomically:将字典保存回磁盘。

这可以变得像你想要的那样复杂。例如,当前代码在单独的线程中加载字典文件,因此您也可以在单独的线程中保存。或者,您可能希望在每次编辑后再次保存在单独的线程中。

于 2010-02-24T17:05:14.680 回答