【问题标题】:How would you make The Dock Icon show a window when clicked?单击时如何使 Dock 图标显示一个窗口?
【发布时间】:2009-06-07 18:27:46
【问题描述】:

我希望 Dock 图标在关闭后使用 makekeyandorderfront 方法打开主窗口。我已经通过一个按钮打开一个窗口来完成此操作,但我不知道如何使用 Dock 图标来完成此操作,因为您无法在界面构建器中建立与它的连接。

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    NSApplication的delegate中有一个delegate方法:

    - (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag;
    

    您可以使用它来处理对 Dock 中应用程序图标的点击。见its documentation

    【讨论】:

    • 只是为了让你停止唠叨:[_window makeKeyAndOrderFront:nil];当然,您需要委托类中的实例变量。 B.t.w.:SO 用于编码问题。如果您需要完整的代码示例来复制和粘贴,网上还有其他网站。
    【解决方案2】:

    还有另一种处理方式:

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

    将此 delagate 方法放入您的应用委托中

    - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication {
        return YES;
    }
    

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

    【讨论】:

    • 感谢代码,但这不适合我的应用程序,但很高兴知道这也是可能的。谢谢。
    • 不要认为它只是代码。这是使用众多 NSApplication 委托方法之一的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2021-04-26
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多