我正在创建一个 Mac 菜单栏应用程序,我希望在用户切换可见桌面空间(包括外部显示器)时收到通知。这是一个只有菜单栏的应用程序(即没有实际窗口)。
我看过一些类似的问题,但似乎没有一个答案对我有用。我见过的大多数的答案涉及观察NSWorkspaceActiveSpaceDidChangeNotification的NSWorkspace的通知中心。
我尝试在我的 AppDelegate 中观察到这一点,我applicationDidFinishLaunching有以下代码:
NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self,
  selector: Selector(spaceChanged()),
  name: NSWorkspaceActiveSpaceDidChangeNotification,
  object: nil)
在我的spaceChanged()函数中,我只是为了调试目的向控制台打印一些东西。这个函数只会在应用启动时被调用。每当我更改桌面空间时,尽管我从未收到通知。
有什么我想念的吗?任何帮助表示赞赏。