В соответствии с номером guidelines от Apple нажатие кнопки меню на tvOS должно вернуть вас в предыдущее меню, пока вы не перейдете в верхнее меню, после чего он должен вернуть вас в меню ОС. Мой вопрос: как я могу предотвратить поведение кнопки меню по умолчанию и не возвращать его в меню ОС, но затем активировать его, когда пользователь находится в верхнем меню моего приложения?Переопределение кнопки удаленного меню Apple Siri. Поведение по умолчанию
ответ
Вы можете зарегистрировать tapGestureRecognizer
и установить allowedPressTypes = UIPressTypeMenu
код следующим образом:
UITapGestureRecognizer *tapGestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapGestureRec.allowedPressTypes = @[@(UIPressTypeMenu)];
[self.view addGestureRecognizer:tapGestureRec];
Тогда всякий раз, когда Siri пульты кнопки меню нажимается ваш метод handleTap
будет называться, что позволяет добавить любую пользовательскую логику вам нужно. Просто имейте в виду, что блокировка кнопки меню от приостановки приложения на контроллере корневого представления может быть причиной отказа App Store.
Дополнительную информацию о выявлении жестов here и о прессеTtyes here.
Это поведение вы можете получить бесплатно, используя UINavigationController
.
В общем случае контроллер представления контейнера может использовать метод делегата -gestureRecognizerShouldBegin:
, чтобы разрешить или запретить начало распознавания жестов нажатия кнопки меню, начиная с того, находится ли он на корневом уровне вложенности или нет. Когда общий UIApplication
экземпляр получит необработанную кнопку меню, она сообщит системе, что приведет к отправке приложения на задний план.
Быстрая версия ответа @ C_X, которая работала для меня.
let tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:")
tapGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(tapGesture)
Swift 3 версия:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(MyClass.handleMenuPress(_:)))
tapGesture.allowedPressTypes = [NSNumber(value: UIPressType.menu.rawValue)]
self.view.addGestureRecognizer(tapGesture)
Я работаю над приложением Apple TV. Это приложение основано на воспроизведении видео. Мое требование заключается в том, что когда пользователь приостанавливает видео и нажимает кнопку меню, воспроизведение видео непрерывно. Я хочу, чтобы в режиме видео паузы пользователь нажимал кнопку меню, а затем экран перенаправлялся на предыдущий экран без воспроизведения видео. –
В вашей функции _handleTap_ вы можете вывести текущий VC из стека. – Individual11
Красивое, лаконичное решение. Добавлен синтаксис для Swift 3. –
- 1. Переопределение кнопки удаленного меню Siri
- 2. Разрешить кнопку удаленного меню Siri при перезапуске кнопки «Воспроизведение/Пауза»
- 3. Поведение по умолчанию по умолчанию.
- 4. Как обнаружить Apple TV Siri Remote нажатие кнопки?
- 5. Переопределение по умолчанию argparse -h поведение
- 6. Переопределение по умолчанию tableview setEditing поведение
- 7. Переопределение по умолчанию поведения по умолчанию
- 8. JQuery UI Пункт меню запрещает поведение по умолчанию по умолчанию
- 9. Chrome останавливает поведение по умолчанию нажатием кнопки()
- 10. Отключить поведение кнопки по умолчанию в wxPython
- 11. Поведение по умолчанию разветвления?
- 12. Удалить поведение по умолчанию по умолчанию ui
- 13. GXT заголовок столбца, переопределение метки по умолчанию
- 14. Переопределение шума по умолчанию?
- 15. Переопределение аргумента по умолчанию
- 16. Переопределение поведения по умолчанию для longClick()
- 17. Переопределение поведения по умолчанию STI
- 18. Переопределение стека активности по умолчанию
- 19. Пользовательское меню при нажатии кнопки по умолчанию
- 20. Переопределение Go по умолчанию HTTP Sever переориентировать поведение
- 21. Javascript: переопределение по умолчанию Javascript поведение разных направлений
- 22. Неожиданное поведение «по умолчанию»
- 23. Как предотвратить поведение по умолчанию на кнопке возврата/меню боксера?
- 24. Переопределение камеры/деятельности по умолчанию для Android.
- 25. отключить поведение по умолчанию выпадающего меню/html-select не удается с помощью apple-mobile-web-app-
- 26. Отключить поведение ссылок по умолчанию
- 27. Переопределение поведения кнопки обратной связи по умолчанию в android
- 28. Переопределение по умолчанию make target
- 29. Переопределение шаблонов по умолчанию FOSUserBundle
- 30. Переопределение по умолчанию Rails date_select
простой акт добавив его признаваемых жесты зрения не остановит ли от выполнения его поведение по умолчанию? – mredig
Да, это то, что я использую в своем приложении, оно будет вызывать ваш предоставленный селектор, когда когда-либо будет нажато MenuButton, так что теперь вам нужно, что вы делаете с этим ... –
Я добавил tapgesture на AVPLayerViewController, но жест кнопки меню не вызов в tvos. – vipulk617