【发布时间】:2016-11-30 12:55:14
【问题描述】:
我开发了一个 Mac OS 应用程序。同一个包中有一个主窗口应用程序和一个菜单栏帮助程序应用程序。
帮助应用程序有一个菜单项,称为“显示主应用程序”。如果在我单击菜单项后没有启动辅助应用程序,则它应该启动主应用程序。如果辅助应用程序隐藏在停靠栏或主窗口关闭,则辅助应用程序应将主应用程序置于最前面。
我知道如何启动主应用程序。但我不知道如何实现反应功能。我使用了如下代码。
let apps = NSRunningApplication.runningApplications(withBundleIdentifier: "com.xxx.yyy")
if let mainApp = apps.first {
mainApp.activate(options: [ .activateIgnoringOtherApps ])
}
当主应用程序刚刚启动并隐藏在 Dock 中时,activate 方法似乎没有任何作用。我注意到主应用程序实际上已激活,因为主菜单栏已更改为主应用程序的主菜单。但是没有调用其AppDelegate类的“applicationShouldHandleReopen”方法。所以主窗口不能排在前面。
我怎样才能让它工作?
【问题讨论】:
-
你做到了吗?我正在尝试激活 Dock 中的应用程序窗口。
标签: swift macos cocoa appdelegate