1

我大约 90% 的把握我的程序会从使用 Cocoa 中的文档框架中受益,但有一件事我不确定。

在我看到的所有示例中, NSDocument 子类始终表示正在保存的文件,这并不完全适合我的应用程序。

将在我的应用程序中保存到磁盘的文件将是将在程序中编辑的实体的集合。创建新文件时,用户将能够编辑该集合中包含的各个实体,这将需要状态和更改跟踪(保存、撤消等)。

基于文档的应用程序会以这种方式工作,还是我会不断地与框架作斗争?

更新以使我的问题更清楚:

我计划将文件保存为一个包,因为它肯定会使管理文件中包含的单独实体变得更容易,但并没有真正解决我的问题。

想想像 Microsoft Access 这样的程序;文件是数据库,但文档表单、报告、查询和宏之类的东西。每个项目都在单独的文档窗口中进行编辑,并且可以保存或撤消对单个文档的更改,但保存的是整个数据库(包括所有表单、报告和查询)。

4

1 回答 1

2

我不确定这是否适用于您的应用程序,但您可以将您的NSDocument与一个包相关联,这样您的文档就不仅仅是一个文件,而是您需要处理的文件的集合。

几年前我在做这个工作时,让它工作并不是那么简单,但最终还是可以做到的。我希望现在事情变得更容易了,但无论如何,如果它适合您的要求,我会尝试一下。

这个SO 主题将提示您在 default 中必须更改的内容NSDocument

于 2011-06-02T18:58:26.257 回答