Play/Pause 按钮被覆盖时允许使用 Siri 远程菜单按钮
Allow Siri Remote Menu button when Play/Pause button is overridden
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(MainController.tapped(_:)))
tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.PlayPause.rawValue)]
self.view.addGestureRecognizer(tapRecognizer)
此代码允许我覆盖 play/pause 按钮并且它可以正常工作。但是,现在我必须长按菜单按钮 return 才能进入 Apple TV OS 菜单。
是否在按下菜单按钮时,它 return 直接进入 OS 菜单,而 Play/Pause 按钮继续执行我当前的逻辑?恐怕如果点击菜单没有 return 到 OS 菜单,我的应用程序可能会被拒绝。
要 return 到 Apple TV 主屏幕,您可以在 viewDidLoad
中设置一个 UITapGestureRecognizer
,如下所示:
// Setup Menu Button recognizer
let menuGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.handleMenuGesture(_:)))
menuGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(menuGesture)
然后在 handleMenuGesture
你 suspend
你的申请:
// MARK: - Handle Siri Remote Menu Button
func handleMenuGesture(tap: UITapGestureRecognizer) {
print("Menu Gesture")
UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil)
}
相关:
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(MainController.tapped(_:)))
tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.PlayPause.rawValue)]
self.view.addGestureRecognizer(tapRecognizer)
此代码允许我覆盖 play/pause 按钮并且它可以正常工作。但是,现在我必须长按菜单按钮 return 才能进入 Apple TV OS 菜单。
是否在按下菜单按钮时,它 return 直接进入 OS 菜单,而 Play/Pause 按钮继续执行我当前的逻辑?恐怕如果点击菜单没有 return 到 OS 菜单,我的应用程序可能会被拒绝。
要 return 到 Apple TV 主屏幕,您可以在 viewDidLoad
中设置一个 UITapGestureRecognizer
,如下所示:
// Setup Menu Button recognizer
let menuGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.handleMenuGesture(_:)))
menuGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(menuGesture)
然后在 handleMenuGesture
你 suspend
你的申请:
// MARK: - Handle Siri Remote Menu Button
func handleMenuGesture(tap: UITapGestureRecognizer) {
print("Menu Gesture")
UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil)
}
相关: