Наблюдение за изменениями громкости системы OSX - Swift - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь выполнить метод при изменении системного тома.

Я пытался использовать DistributedNotificationCenter.default().addObserver(self,selector: #selector(volumeChanged(_:)),name: NSNotification.Name(rawValue: "com.apple.sound.settingsChangedNotification"),object: nil), но он не работал.

Ну, он работает. Но только если приложение «Системные настройки» открыто.

Какой правильный способ выполнить sh эту задачу?

Ps: обратите внимание, что это на MacOS, а не iOS

1 Ответ

0 голосов
/ 16 февраля 2020

Попробовав множество способов, я нашел хороший обходной путь: вместо поиска вероятно несуществующего уведомления, я пытаюсь получить физическое событие нажатия клавиши. Поскольку мультимедийные клавиши не отправляют обычный CGEvent, я предложил следующее решение: Захват кнопок управления мультимедиа OSX в Swift

Обратите внимание, что TouchBar имитирует такое событие клавиши, поэтому любое приложение, которое Вы будете писать, используя этот метод, и он будет работать для тех моделей MacBook, которые имеют TouchBar.

Возможно, это не идеальное решение, но оно работает. Если кто-нибудь знает лучший способ, пожалуйста, дайте мне знать.

...