在Objective-C / Cocoa中,是否存在激活任务控制或更改空间的全局事件?

时间:2014-03-19 17:34:43

标签: objective-c cocoa events nsstatusitem nspopover

我目前正在开发一个OSX菜单栏应用程序,该应用程序使用自定义状态项视图和NSPopover来显示内容。

我试图让它有时会被解雇,就像空间被改变一样有意义,因为弹出窗口不像窗口那样移动空间,或者当任务控制器被激活时。

目前,在任务控制中,NSPopover保持在顶部,如this screenshot所示。

目前我正在使用带有一些鼠标事件掩码的NSEvent addGlobalMonitorForEventsMatchingMask:并且工作正常,但不包括所有需要的事件。

那么,有没有办法检测主要操作系统事件何时发生,如打开任务控制,更改空间等?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

注册NSWorkspace的{​​{1}}即可收到有关空间更改的通知。 Mission Control没有这样的通知,但您可以调查是否可以使用NSWorkspaceActiveSpaceDidChangeNotification或其他通知来确定您需要的内容。

HTH