我想监视所有窗口(包括其他应用程序的窗口)更改,如调整大小,隐藏,取消隐藏等。我发现如果我使用
[NotificationCenter defaultCenter]
,我刚从自己的应用程序窗口收到该事件。但是怎么样
NSWorkspace的通知中心?
答案 0 :(得分:1)
NSWorkspace与Windows没有任何关系,所以没有。
分布式通知中心也不起作用。
请记住,通知中心不仅仅是观察事物的门户;事情必须发布通知。当用户调整其窗口大小时,NSWindow对象会执行此操作,但它仅在默认本地通知中心执行,而不是在分布式通知中心或NSWorkspace上执行。因此,这是唯一可以观察窗口通知并获取任何内容的通知中心,而且您只能获得有关自己窗口的信息。
您可以使用辅助功能API在任何进程中观察窗口的属性,但在拖动过程中不会进入通知,只有在它之后,并且用户需要打开“辅助设备访问”