繁体   English   中英

Swift:在 iOS 设备上收听物理按钮向上/向下事件

[英]Swift: Listen to physical button up/down events on iOS device

我想在用户按下任一音量按钮时执行一个操作,并在他们停止按下它时执行另一个操作,类似于我可以通过覆盖touchesBegan()touchesEnded

我知道我可以在更改时列出音量级别,如下所示:

  NotificationCenter.default.addObserver(self, selector: #selector(volumeChanged), name: NSNotification.Name(rawValue: "AVSystemController_SystemVolumeDidChangeNotification"), object: nil)

  @objc func volumeChanged(notification: NSNotification) {
       if let userInfo = notification.userInfo {
          if let volumeChangeType = userInfo["AVSystemController_AudioVolumeChangeReasonNotificationParameter"] as? String {  
              // do something here, such as a switch based off of "volumeChangeType"
          }
      }
  }

但是,一旦用户完全调高或调低音量,就不再触发事件。 此外,当用户停止按下按钮时不会触发任何事件。 这是有道理的,因为我实际上是在听音量变化事件,而不是音量按钮按下事件。

有没有办法在 iOS 中收听物理按钮按下?

看看这个GitHub Repo ,它看起来提供了你所需要的一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM