Mac OS X - 如何监控窗口更改事件?

时间:2011-08-27 22:13:19

标签: cocoa window nsnotificationcenter

我正在开发一个Cocoa应用程序,该应用程序显示已打开的窗口列表并突出显示当前关注的窗口。我的问题是,我找不到系统通知来通知我的应用程序主要(也称为“焦点”或“前景”)窗口已更改。我尝试过:

    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(wsNotificationHook:) name:NSWorkspaceDidActivateApplicationNotification object:nil];

但它监视应用程序更改:在​​同一应用程序中执行窗口更改时不会被触发(例如,如果我使用exposè在两个Firefox窗口之间传递)。是否存在可以监视以跟踪主窗口更改的系统范围事件?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

您最接近的可能是辅助功能API。有关(部分)解决方案的类似问题,请参阅herehere