首页 > 解决方案 > macOS:如何检测应用程序的查找器图标何时打开?

问题描述

当 macOS 应用程序已经打开并运行时,有什么方法可以检测它的 Finder 图标何时打开?

在这种情况下,打开它的 Finder 图标会导致应用程序变为活动状态,我可以使用NSNotificationCenter或应用程序委托的applicationDidBecomeActive:方法检测到该事件。

但是,到目前为止,我还没有找到一种方法来将该激活事件与应用程序可以激活的任何其他方式区分开来,例如单击其窗口,单击其 Dock 图标,使用 command+tab 切换到它,激活它与 AppleScript 等等。我尝试检查是否有任何这些情况使用苹果事件来激活应用程序[[NSAppleEventManager sharedAppleEventManager] currentAppleEvent],但它返回 nil 因为没有当前的苹果事件,所以这没有帮助。

标签: macosfinder

解决方案


-applicationShouldHandleReopen:hasVisibleWindows:在此类重新打开事件上调用应用程序委托方法。

请注意,根据设计,从 Finder、Launchpad 或 Dock 中(重新)打开是相同的。


推荐阅读