阅读以下有关在osX中获取和设置系统卷的建议,我使用的ISSoundAdditions非常有用:
Change Volume on Mac programmatically
和
我可以使用NSSlider(带绑定)直接管理系统音量。 我的问题是:如何捕获作为事件更改的音量(例如键盘中音量调高键的情况?在这种情况下,我的滑块没有反应。 我试验过:
self.addObserver(self, forKeyPath: "volume.systemVolume", options: NSKeyValueObservingOptions.New, context: &volumeContext)
但后来我得到了一个例外:
无法为观察者XX更新关键路径" volume.systemVolume", 最有可能的原因是因为关键字"音量"没有改变 正在发送适当的KVO通知。检查KVO合规性 该课程。
BTW,systemVolume
属性是一个类属性,如果重要吗?
非常感谢你的帮助
约书亚
答案 0 :(得分:0)
我用过(迅捷4):
DistributedNotificationCenter.default.addObserver(self,
selector: #selector(eventFunction(_:)),
name: NSNotification.Name(rawValue: "com.apple.sound.settingsChangedNotification"),
object: nil)
函数定义如下:
@objc func volumeChangeEvent(_ evt: NSEvent) { }