cocoa - 我如何收到新窗口打开的通知?

标签 cocoa events accessibility

我想响应外部应用程序打开的某种类型的新窗口。我有一些使用某些碳功能查找当前打开的应用程序和窗口(系统范围)的经验,因此理论上可以每隔几秒钟检查一次。这需要获取所有打开的窗口的列表,并根据我必须维护的一些列表进行检查,感觉非常笨重。

当新窗口启动时,如何获得简单、干净的通知?我应该使用辅助功能 API 吗?如果是这样,我具体在寻找什么?

最佳答案

首先,创建一个 AXObserver。然后,监视您认为感兴趣的任何应用程序的启动。发生此类启动时,为该进程创建一个应用程序 AXUIElement,并向其中添加您的观察者以获取 kAXWindowCreatedNotification 通知。

我怀疑这是否是做你想做的事情的最佳方式。您可能会从这个解决方案中退一步(即观察新窗口)并询问有关您目标的另一个问题。

关于cocoa - 我如何收到新窗口打开的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307236/

相关文章:

objective-c - Runloop 不处理来自dispatch_async 的事件

macos - cocoa 相当于diskEvt/kEventClassVolume?

c# - 为什么事件处理程序的返回类型总是 void?

c# - 使用自定义事件处理程序在表单之间传递数据

iphone - 是否可以检测 iPhone 上网页中的 VoiceOver 是否打开?

objective-c - 如何比较NSEvent的trackingArea来查看哪个trackingArea触发了 "theEvent"

cocoa - OSX El Capitan 上的透明 NSWindow

php - Laravel 事件 : updating vs updated?

javascript - 辅助功能 - 在 TAB 键按下时触发悬停和焦点事件

Android Accessibility RecyclerView 读取 "in list X items"