macos - 当大多数应用程序 'documents' 不是基于文件时,NSDocument 是正确的选择吗?

标签 macos cocoa nsdocument

我正在编写一个 Mac Cocoa 应用程序来操作数据库文件,可以使用 NSDocument 技术轻松实现,因为它们直接与磁盘文件相关。

但是,大多数应用程序都会操作该数据库中的项目。当用户打开数据库项目时,应该出现一个新窗口以允许查看、编辑、保存该项目,因此数据库项目不直接与磁盘文件相关。请注意,撤消和重做在这里是合适的。

对于数据库窗口和数据库项窗口都使用 NSDocument 技术是否合适,或者是否有更好的方法?

最佳答案

我认为使用NSDocument将是一个不错的选择。它将允许您利用大多数提供的功能,例如 NSDocumentController、撤消支持、窗口管理等。您必须重写一些方法,例如加载和保存。对于这些文档,“打开最近的”菜单可能很难正常工作(也许使用自定义 URL 方案?)。使用 NSDocument 的缺点是……我想不到。您必须从头开始编写所有内容,并且将它们集成到应用程序的其余部分会更加困难。

关于macos - 当大多数应用程序 'documents' 不是基于文件时,NSDocument 是正确的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006453/

相关文章:

swift - 将 AVCaptureDevice 设置为 1 fps 时出现相机问题

python - Pip 突然使用了错误版本的 Python

git:找不到命令(在 OS X 10.5 上)

cocoa - 观察 NSTreeController 绑定(bind)的核心数据实体以进行插入/删除

view - 从NS文档目录加载图像时, Collection View 崩溃

swift - XCode/swift : How to get Value of Popup Button

macos - 您可以在插件中运行 XPC 服务吗? (例如打印对话框扩展插件)

objective-c - 如何检索 Cocoa API 的 Swift "header"文件?

objective-c - 始终在 NSDocument 中附加文件扩展名

objective-c - Cocoa/Obj-C - 将文件拖到应用程序图标时打开文件