2

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

我试图让它在有时有意义的时候消失,比如当空间发生变化时,因为弹出框不会像窗口那样移动空间,或者当任务控制器被激活时。

目前,在任务控制中,NSPopover 保持在顶部,如此屏幕截图所示。

目前我正在使用NSEvent addGlobalMonitorForEventsMatchingMask:一些鼠标事件掩码,它工作正常,但不涵盖所有需要的事件。

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

任何帮助将不胜感激。

4

1 回答 1

2

您可以通过注册NSWorkspace's来获得有关空间变化的通知NSWorkspaceActiveSpaceDidChangeNotification。Mission Control 没有这样的通知,但您可以调查是否NSWorkspaceDidActivateApplicationNotification可以使用其他通知来确定您需要什么。

高温高压

于 2014-03-19T18:50:58.307 回答