Кнопка меню Siri Remote не выходит из приложения, когда UIButton сфокусирован

Я переопределяю pressesBegan для получения нажатий Select. Кнопка меню Siri Remote не выходит из моего приложения, когда фокус находится на UIButton. Если ни один элемент пользовательского интерфейса не сфокусирован, кнопка меню работает должным образом.

Как я могу получать нажатия кнопки меню, когда фокус находится на 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)
        }
    }
}

person Daniel Storm    schedule 07.06.2016    source источник


Ответы (1)


UIButton реагирует только на кнопку .Select на пульте. Вы можете поймать кнопку меню с помощью распознавателя жестов касания. Например:

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

Затем реализуйте:

func menuPressed() {
    // do something
}
person Aaron Brager    schedule 07.06.2016
comment
Это прекрасно работает. Забыл об использовании UITapGestureRecognizer. Есть ли способ изящно вернуться на главный экран, а не exit(0)? - person Daniel Storm; 07.06.2016
comment
Ничего, понял: UIControl().sendAction(#selector(NSURLSessionTask.suspend), to: UIApplication.sharedApplication(), forEvent: nil) Спасибо! - person Daniel Storm; 07.06.2016