У меня есть приложение Catalyst, работающее на macOS, где мне нужно выбрать и сфокусировать первый элемент в представлении коллекции. По умолчанию программно выбранный элемент только выбран, но не сфокусирован. Чтобы продемонстрировать, что я имею в виду, вот приложение при запуске ...
А вот и приложение после того, как я вручную выберу первый элемент с помощью мыши или клавиатуры ...
Насколько я понимаю, Catalyst использует Focus Engine из tvOS для управления фокусом, и поэтому применение тех же концепций здесь должно привести к тому же результату. Однако мне не повезло, что это сработало.
Вещи, которые я пробовал ...
- Переопределение
preferredFocusEnvironments
в контроллере представления и возврат представления коллекции, а также реализацияindexPathForPreferredFocusedView(in:)
в делегате представления коллекции. Это работает настолько, насколько вызываются оба метода, но не влияет на результат. - Переопределение
preferredFocusEnvironments
и возврат текущей выбранной ячейки из представления коллекции. - Переопределение
preferredFocusEnvironments
и возврат ячейки с жестко заданнымIndexPath(item: 0, section: 0)
в соответствии с статья о ранчо Big Nerd Ranch.
К сожалению, ни один из этих подходов не дает желаемого результата, заключающегося в фокусировке на выбранном элементе. Кто-нибудь может посоветовать, как этого добиться?