Как определить, когда пользователь изменяет пробелы в macOS? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь заставить приложение macOS определять, когда пользователь переключает пробелы.

В основном следуют этому предложению ( Обнаружение изменений пробелов в пробелах в Mac OS X ) при обновлении до

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(_ aNotification: Notification) {

        NotificationCenter.default.addObserver(self, selector: #selector(self.spaceChange), name: NSWorkspace.activeSpaceDidChangeNotification, object: nil)
    }

    func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
        return true
    }

    @objc func spaceChange() {
        print("space did change")
    }

}

что выглядит нормально, по крайней мере компилируется без предупреждения / ошибки.

Я ожидаю, что "пробел изменился" будет напечатан в журнале, когда приложение работает, когда я переключаю пробелы. Тем не менее, он никогда не печатает в журнал.

1 Ответ

1 голос
/ 04 июня 2019

Да, проблема в том, что я использовал неправильный NotificationCenter, нам нужно:

NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(self.spaceChange), name: NSWorkspace.activeSpaceDidChangeNotification, object: nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...