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