swifttvosapple-tvsiri-remote

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


I'm overriding pressesBegan to receive Select presses. The Siri Remote's Menu Button does not exit my application when the focus is on a UIButton. If no UI element is focused the Menu Button works as expected.

How do I receive Menu Button presses when the focus is on a UIButton?

override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {
    for item in presses {
        if item.type == .Select {
            print("Click")
        }
        if item.type == .Menu {
            print("Menu Button")
            super.pressesBegan(presses, withEvent: event)
        }
    }
}

Solution

  • UIButton only responds to the .Select button on the remote. You can catch the menu button using a tap gesture recognizer. For example:

    let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(ClassName.menuPressed()))
    tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)];
    view.addGestureRecognizer(tapRecognizer)
    

    Then implement:

    func menuPressed() {
        // do something
    }