Daniel Storm Daniel Storm - 2 years ago 95
Swift Question

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

I'm overriding

pressesBegan
to receive Select events. 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)
}
}
}

Answer Source

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
}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download