我想响应外部应用程序打开的某种类型的新窗口。我有一些使用某些碳功能查找当前打开的应用程序和窗口(系统范围)的经验,因此理论上可以每隔几秒钟检查一次。这需要获取所有打开的窗口的列表,并根据我必须维护的一些列表进行检查,感觉非常笨重。
当新窗口启动时,如何获得简单、干净的通知?我应该使用辅助功能 API 吗?如果是这样,我具体在寻找什么?
最佳答案
首先,创建一个 AXObserver。然后,监视您认为感兴趣的任何应用程序的启动。发生此类启动时,为该进程创建一个应用程序 AXUIElement,并向其中添加您的观察者以获取 kAXWindowCreatedNotification
通知。
我怀疑这是否是做你想做的事情的最佳方式。您可能会从这个解决方案中退一步(即观察新窗口)并询问有关您目标的另一个问题。
关于cocoa - 我如何收到新窗口打开的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307236/