当macOS应用程序已经打开并正在运行时,有什么方法可以检测到它的Finder图标何时打开?
在这种情况下,打开其Finder图标会使应用程序变为活动状态,我可以使用NSNotificationCenter
或应用程序委托的applicationDidBecomeActive:
方法检测到该事件。
但是,到目前为止,我还没有找到一种方法来将激活事件与应用程序可以激活的其他任何方式区分开来,例如单击其窗口,单击其Dock图标,使用Command + Tab切换到该事件。 ,使用AppleScript激活它,等等。我尝试检查是否有任何情况使用苹果事件通过[[NSAppleEventManager sharedAppleEventManager] currentAppleEvent]
激活了应用程序,但由于没有当前的苹果事件,它返回nil,因此无济于事。
在此类重新打开事件上调用应用程序委托方法-applicationShouldHandleReopen:hasVisibleWindows:
。>>
请注意,根据设计,从Finder,启动板或Dock进行(重新)打开是相同的。