我目前正在开发一个OSX菜单栏应用程序,该应用程序使用自定义状态项视图和NSPopover来显示内容。
我试图让它有时会被解雇,就像空间被改变一样有意义,因为弹出窗口不像窗口那样移动空间,或者当任务控制器被激活时。
目前,在任务控制中,NSPopover保持在顶部,如this screenshot所示。
目前我正在使用带有一些鼠标事件掩码的NSEvent addGlobalMonitorForEventsMatchingMask:
并且工作正常,但不包括所有需要的事件。
那么,有没有办法检测主要操作系统事件何时发生,如打开任务控制,更改空间等?
非常感谢任何帮助。
答案 0 :(得分:2)
注册NSWorkspace
的{{1}}即可收到有关空间更改的通知。 Mission Control没有这样的通知,但您可以调查是否可以使用NSWorkspaceActiveSpaceDidChangeNotification
或其他通知来确定您需要的内容。
HTH