在OSX上重新打开窗口的正确方法是什么?

Mos*_*she 2 macos cocoa nswindow nsapplication

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

如何制作它,以便当用户点击说停靠图标时,窗口重新打开?我正在创建Xcode自动给我的笔尖.

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

无论如何,我已经google了一下,并且大部分都发现了对Carbon API或基于文档的应用程序的引用.

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

Dav*_*ong 6

一般来说,我发现有工作NSWindowControllers使得处理窗口简单.在您的情况下,您的App Delegate不会直接拥有该窗口,而是NSWindowController拥有拥有该窗口的窗口.

为此,您需要创建一个新的NSWindowController子类(使用用户界面的xib),并将您的窗口从MainMenu.xib迁移到新的WindowController.xib中.事情搞砸了,然后你就准备好了.(另外,请确保未选中 "启动时可见"复选框)

从你的app委托中,你只需创建一个新的窗口控制器实例(无论是以编程方式还是通过MainMenu.xib无关紧要),并告诉它-showWindow:你希望窗口显示(或成为键)的时间,以及-close什么时候你想要它消失.

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