如何制作已创建窗口的副本?

时间:2012-12-30 21:10:15

标签: objective-c xcode macos interface-builder

所以我正在为OS X制作一个xcode应用程序,到目前为止事情进展顺利。但是,现在我处在路障中。我的应用程序主要是一个窗口,我需要多次创建该窗口,就像Safari,TextEdit和所有这些应用程序都具有File> New功能一样。我是Xcode的新手,我想知道是否有一种简单的方法(希望有3-4行代码)来做到这一点。如果有人可以向我解释这将是伟大的。

谢谢!

2 个答案:

答案 0 :(得分:1)

启动一个新的OS X项目,然后选择“创建基于文档的应用程序”。这将创建一个NSDocument子类。

如果您想使用Core Data,也请选择它。这将创建一个NSPersistentDocument子类。

New Project Setup

这将为您提供应用程序的基础,并提供您要求的所有功能。

查看Document Based App Programming guideNSPersistentDocument Class Reference

无论你做什么,都不要试着烤自己的。这就是疯狂。

项目模板正确设置info.plist以使其正常工作。

答案 1 :(得分:1)

不管我告诉你什么,不幸的是,它不会只涉及“3-4行代码”。

如果您使用的是非基于文档的应用程序,则需要将创建一个窗口的代码分解出来。如果您没有与窗口一起使用窗口控制器,则应该实现一个。然后,您可以实现一个操作,该操作将创建窗口控制器的新实例,从而创建一个新窗口。当然,如果您有兴趣将与窗口相关的信息保存到文件中,则需要添加更多基础结构。

这引出了我的另一个选择,即创建基于文档的应用程序。这里的一大优点是,如果您对将窗口内容保存到文件感兴趣,则会提供执行此操作的基础结构。这涉及到某种程度的启动,但由于您已经掌握了应用程序的工作内容,因此您只需将这些内容传递给为您提供的文档子类。您还需要向项目提供描述文档类型的元信息,包括描述文档的文件扩展名。

祝你工作顺利。