macOS:如何检测应用程序的查找器图标何时被打开?

macOS: How to detect when an application's finder icon has been opened?

当 macOS 应用程序已经打开并且 运行 时,是否有任何方法可以检测其 Finder 图标何时打开?

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

但是,到目前为止,我还没有找到一种方法来区分该激活事件与应用程序激活的任何其他方式,例如单击其 window、单击其 Dock 图标,使用 command+tab 切换到它,使用 AppleScript 激活它,等等。我尝试检查这些情况中是否有任何情况使用苹果事件来激活带有 [[NSAppleEventManager sharedAppleEventManager] currentAppleEvent] 的应用程序,但它 returns 为零,因为没有当前的苹果事件,所以这无济于事。

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

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