具有多种文档类型的基于Cocoa文档的应用程序

ron*_*ron 3 macos cocoa document-based

我想在Cocoa中构建一个基于文档的应用程序,但它可以创建和处理不同类型的文档.在一个应用程序中考虑Word,Excel,Powerpoint,只是简单得多.但是每个窗口都会根据文档的类型而有所不同.

对于存储,我将使用CoreData.我想添加一个指定文档类型的字段,因为它们应该都有相同的文件结尾.

因此,如果不创建几个独立的应用程序,最好的方法是什么?如何在Interface Builder中创建它?我该如何编写代码呢?

我不需要详细的源代码或任何东西,只是如何做到这一点的一般想法,我会想出其余的.

提前致谢!

Ale*_*lex 14

这是Cocoa Document系统明确设计的目的.Apple 提供文档,但这里是重点.

  • 每种文件都是其中的一个子类NSDocument.如果您正在使用核心数据,请NSPersistentDocument改为使用您的课程.(Apple有一个关于如何在基于文档的应用程序中使用Core Data 的基础教程)
  • 您可以使用Info.plist告诉Cocoa应用程序可以打开的文档类型以及要使用的文档类.
  • 每个NSDocument子类都有一个或多个NSWindowController与之关联的对象,每个对象代表一个窗口.如果您只有一个窗口,则不必进行子类化NSWindowController.您可以将UI逻辑放在文档子类中.但是,为了更清晰的代码,我强烈建议使用子类NSWindowController.
  • NSWindowController(NSDocument如果您决定不进行子类化NSWindowController)可以从您在Interface Builder中构建的NIB加载窗口.实际上,这是创建文档窗口的推荐方法.

希望这能让您大致了解如何在Cocoa中处理这个问题.