macos - macOS:如何检测应用程序的查找器图标何时打开?
问题描述
当 macOS 应用程序已经打开并运行时,有什么方法可以检测它的 Finder 图标何时打开?
在这种情况下,打开它的 Finder 图标会导致应用程序变为活动状态,我可以使用NSNotificationCenter
或应用程序委托的applicationDidBecomeActive:
方法检测到该事件。
但是,到目前为止,我还没有找到一种方法来将该激活事件与应用程序可以激活的任何其他方式区分开来,例如单击其窗口,单击其 Dock 图标,使用 command+tab 切换到它,激活它与 AppleScript 等等。我尝试检查是否有任何这些情况使用苹果事件来激活应用程序[[NSAppleEventManager sharedAppleEventManager] currentAppleEvent]
,但它返回 nil 因为没有当前的苹果事件,所以这没有帮助。
解决方案
-applicationShouldHandleReopen:hasVisibleWindows:
在此类重新打开事件上调用应用程序委托方法。
请注意,根据设计,从 Finder、Launchpad 或 Dock 中(重新)打开是相同的。
推荐阅读
- android-fusedlocation - FusedLocationApi 已被交叉或弃用
- tree - 在 common lisp 中查找树中的项目
- javascript - 如何在 json 文件中使用 javascript 添加换行符
- reactjs - npm sync-request:NetworkError:无法在“XMLHttpRequest”上执行“发送”
- libgdx - 使用标签 libgdx 更改短语中一个单词的颜色?
- mocha.js - WebStorm — '未解决的函数或方法' express.get 警告
- ajax - 通过ajax加载更多帖子后砌体视图不起作用
- c - 关于在泛型函数中强制转换的一些误解
- java - Windowbuilder Java Oxygen、Mac 的安装问题,错误消息:“无法启动选定的向导”(空的 windowbulder 插件/文件夹)
- c# - 受密码保护的安装程序 .net