当点击时,你如何让Dock图标显示一个窗口?

Jos*_*hua 3 cocoa objective-c

我希望Dock Icon makekeyandorderfront在关闭后使用该方法打开主窗口.我用一个按钮打开一个窗口,但我不知道如何使用Dock图标,因为你无法在界面构建器中建立它.

Nik*_*uhe 15

NSApplication的委托中有一个委托方法:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag;
Run Code Online (Sandbox Code Playgroud)

您可以使用它来处理停靠栏中应用程序图标的点击.查看其文档.

  • 只是为了让你停止唠叨:[_ window makeKeyAndOrderFront:nil]; 当然,您需要委托类中的实例变量.顺便说一句:SO是编码问题.如果您需要完整的代码示例进行复制和粘贴,则网络上还有其他网站. (5认同)

Abi*_*ern 6

还有另一种方法可以解决这个问题:

而不是通过单击停靠栏尝试重新打开应用程序窗口,您可以告诉应用程序在最后一个窗口关闭时终止.这样,当没有窗口打开时,您将不会显示活动的停靠图标.

将此delagate方法放在您的app委托中

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但是,您选择哪种方法取决于您和您的应用.我更喜欢将这种方法用于非基于文档的应用程序,因为当关闭它的唯一窗口时,让应用程序运行是没有意义的.

  • 不要把它当作代码.这是使用许多NSApplication委托方法之一的示例. (2认同)