Apple TV - Как изменить фокус только при нажатии кнопки меню

Я работаю над простой настольной игрой. У меня есть кнопки в левом столбце, такие как «Новая игра», «Настройки» и т. Д. (Назовем это «Просмотр меню»). Остальная часть экрана - это «Board View» с текущим состоянием игры.

Можно ли обработать, когда пользователь нажимает кнопку «Меню» на пульте дистанционного управления Apple TV, просто чтобы перейти от «Доски» к моему «Виду меню», вместо того, чтобы закрывать мое приложение? У меня есть и «Вид меню», и «Вид платы» в одном контроллере, может быть, мне нужно настроить иерархию контроллеров?

Спасибо за помощь!


person Pavel Smejkal    schedule 25.10.2015    source источник


Ответы (2)


В конце концов, я заметил, что переопределение pressesEnded не отменяет нажатие кнопки меню в первый раз после запуска приложения. С другой стороны, использование UITapGestureRecognizer делает:

    let menuTapGestureRegocnizer = UITapGestureRecognizer(target: self, action: "menuTapped")
    menuTapGestureRegocnizer.allowedPressTypes = [UIPressType.Menu.rawValue]
    view.addGestureRecognizer(menuTapGestureRegocnizer)
person Pavel Smejkal    schedule 15.11.2015

Вы можете переопределить метод presssesEnded и запускать переходы навигации вручную.

override func pressesEnded(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {
    for press in presses {
        if(press.type == UIPressType.Menu) {
           // Do what you want
           // ...
        } else {
            super.pressesEnded(presses, withEvent: event)
        }

    }
}
person Stefan    schedule 25.10.2015
comment
Выглядит хорошо, я действительно могу справиться с нажатием кнопки меню. Проблема в том, что я все еще не могу отменить действие меню по закрытию приложения. Любая идея? РЕДАКТИРОВАТЬ: На реальном устройстве похоже, что он работает! Спасибо! - person Pavel Smejkal; 26.10.2015
comment
Будь осторожен. Мое приложение было отклонено: «Кнопка меню на пульте Siri Remote не работает должным образом в вашем приложении. ' - person Stefan; 26.10.2015
comment
Я вообще-то заметил, на 100% не работает. Когда я запускаю приложение и запускаю игру (фокусируюсь на контроллере справа) и нажимаю кнопку «Меню» в первый раз, фокус перемещается в меню (контроллер слева), но приложение все равно закрывается. После повторного запуска приложения (пробуждение его в виде фона) кнопка меню работает правильно (закрывает приложение, только если я нахожусь в контроллере меню). - person Pavel Smejkal; 27.10.2015