3
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(MainController.tapped(_:)))
tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.PlayPause.rawValue)]
self.view.addGestureRecognizer(tapRecognizer)

此代码允许我覆盖播放/暂停按钮并且它可以正常工作。但是,现在我必须长按菜单按钮才能返回 Apple TV OS 菜单。

无论如何按下菜单按钮时,它会直接返回操作系统菜单,而播放/暂停按钮会继续执行我当前的逻辑吗?恐怕如果单击菜单不返回操作系统菜单,我的应用程序可能会被拒绝。

4

1 回答 1

3

要返回 Apple TV 主屏幕,您可以UITapGestureRecognizerviewDidLoad这样设置:

// Setup Menu Button recognizer
let menuGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.handleMenuGesture(_:)))
menuGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(menuGesture)

然后在handleMenuGesturesuspend的应用程序中:

// MARK: - Handle Siri Remote Menu Button
func handleMenuGesture(tap: UITapGestureRecognizer) {
    print("Menu Gesture")
    UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil)
}

相关:当 UIButton 获得焦点时,Siri Remote 的菜单按钮不退出应用程序

于 2016-07-31T15:18:37.423 回答