我开发了一款Mac OS应用程序。这个应用程序包含一个主窗口和一个菜单栏帮助程序。
在菜单栏帮助程序中有一个名为“显示主应用程序”的菜单项。如果我点击这个菜单项,菜单栏帮助程序应该启动主应用程序,如果主应用程序没有启动的话。而且,如果主应用程序隐藏在Dock中或其主窗口被关闭,菜单栏帮助程序应该将主应用程序置于最前面。
我知道如何启动主应用程序,但我不知道如何实现重新激活功能。我的代码如下。
在菜单栏帮助程序中有一个名为“显示主应用程序”的菜单项。如果我点击这个菜单项,菜单栏帮助程序应该启动主应用程序,如果主应用程序没有启动的话。而且,如果主应用程序隐藏在Dock中或其主窗口被关闭,菜单栏帮助程序应该将主应用程序置于最前面。
我知道如何启动主应用程序,但我不知道如何实现重新激活功能。我的代码如下。
let apps = NSRunningApplication.runningApplications(withBundleIdentifier: "com.xxx.yyy")
if let mainApp = apps.first {
mainApp.activate(options: [ .activateIgnoringOtherApps ])
}
在主应用程序刚启动并隐藏在 Dock 中时,似乎 activate 方法没有任何作用。我注意到主应用程序实际上已被激活,因为主菜单栏已更改为主应用程序的主菜单。但其 AppDelegate 类的 "applicationShouldHandleReopen" 方法未被调用。因此,主窗口无法被置于最前。
我应该如何让它正常工作?