我可以监控其他窗口的事件,比如从NSNotificationCenter调整大小,隐藏等等吗?

时间:2010-09-19 06:28:47

标签: objective-c cocoa macos

我想监视所有窗口(包括其他应用程序的窗口)更改,如调整大小,隐藏,取消隐藏等。我发现如果我使用

  

[NotificationCenter defaultCenter]

,我刚从自己的应用程序窗口收到该事件。但是怎么样

  

NSWorkspace的通知中心?

1 个答案:

答案 0 :(得分:1)

NSWorkspace与Windows没有任何关系,所以没有。

分布式通知中心也不起作用。

请记住,通知中心不仅仅是观察事物的门户;事情必须发布通知。当用户调整其窗口大小时,NSWindow对象会执行此操作,但它仅在默认本地通知中心执行,而不是在分布式通知中心或NSWorkspace上执行。因此,这是唯一可以观察窗口通知并获取任何内容的通知中心,而且您只能获得有关自己窗口的信息。

您可以使用辅助功能API在任何进程中观察窗口的属性,但在拖动过程中不会进入通知,只有在它之后,并且用户需要打开“辅助设备访问”