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

Mit diesem Code kann ich die Wiedergabe/Pause-Taste überschreiben und sie funktioniert ordnungsgemäß. Jetzt muss ich jedoch lange auf die Menü-Taste drücken, um zum Apple TV OS-Menü zurückzukehren.Erlaube Siri Remotemenü, wenn die Wiedergabe/Pause-Taste außer Kraft gesetzt wird

Gibt es trotzdem, wenn die Menu-Taste gedrückt wird, kehrt es direkt zum OS-Menü zurück, während die Play/Pause-Taste meine aktuelle Logik ausführt? Ich habe Angst, wenn das Klicken auf Menü nicht zum OS-Menü zurückkehrt, könnte meine App abgelehnt werden.

+0

Ihre Anwendung wird abgelehnt, wenn die Menüschaltfläche nicht zum Apple TV-Startbildschirm zurückkehrt: [Apple TV App wird nicht vom Startbildschirm aus auf den Startbildschirm zurückgesetzt, wenn die Menüschaltfläche auf der Fernbedienung gedrückt wird] (http://stackoverflow.com/q/33302109/2108547). –

Antwort

3

auf das Apple TV Home-Bildschirm zurückzukehren können Sie ein Setup UITapGestureRecognizer in Ihrem viewDidLoad wie so:

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

und dann in handleMenuGesture Sie suspend Ihre Anwendung:

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

Verwandte: Siri Remote's Menu Button not exiting application when UIButton is focused

+1

Danke! Du hast meinen Tag gerettet! – zsong