2

我有一个在 Xcode 中创建的应用程序。它不是基于文档的。

如何使当用户单击停靠图标时,窗口重新打开?我正在用 Xcode 自动给我的 nib 创建所有东西。

我试图实现applicationShouldOpenUntitledFile:并调用makeKeyAndVisible我的应用程序委托的window属性,但这与应用程序的图标相混淆。(我想这与用作文档预览的图标有关。)

不管怎样,我用谷歌搜索了一下,主要是找到了对 Carbon API 或基于文档的应用程序的引用。

窗口创建过程如何在 NSApplicationMain 和我的应用程序的 nib 文件之间工作,我如何复制该过程,我在哪里可以这样做?

4

1 回答 1

6

通常,我发现使用 with可以简单NSWindowControllers地处理 Windows 。在您的情况下,您的 App Delegate 不会直接拥有该窗口,而是拥有拥有该窗口的那个。NSWindowController

为此,您将创建一个新的NSWindowController子类(使用 xib 作为用户界面),并将您的窗口从 MainMenu.xib 迁移到新的 WindowController.xib。把东西连接起来,然后你就可以开始了。(另外,请确保您的窗口上的“启动时可见”复选框未选中

然后,从您的应用程序委托中,您只需创建一个窗口控制器的新实例(无论是通过编程方式还是通过 MainMenu.xib 都无关紧要),并告诉它-showWindow:您希望窗口何时显示(或成为键),并且-close当你想让它消失时。

至于响应单击 Dock 图标,<NSApplicationDelegate>您正在寻找的方法是-applicationShouldHandleReopen:hasVisibleWindows:.

于 2013-08-01T05:05:09.720 回答