В SwiftUI, модификатор .keyboardShortcut, появившийся в iOS 14, позволяет назначать сочетания клавиш элементам управления. Эти сочетания активируют основное действие элемента управления. Модификатор позволяет настраивать клавиши-модификаторы, отличные от стандартной клавиши Command. Типичный пример демонстрирует навигацию между представлениями с помощью сочетаний клавиш, назначенных кнопкам. Удивительно, но сочетания клавиш остаются активными, даже когда соответствующий элемент управления находится за пределами экрана. Такое поведение связано с тем, что SwiftUI выполняет обход иерархии представлений в глубину для поиска целей для сочетаний клавиш. Система отдает приоритет поиску первого подходящего элемента управления, независимо от его видимости. Это может привести к неожиданному поведению, когда элементы управления, находящиеся за пределами экрана, все еще реагируют на сочетания клавиш. Решением этой проблемы является отключение элементов управления с помощью модификатора .disabled на основе состояния представления. Это гарантирует, что сочетания клавиш активны только тогда, когда соответствующие элементы управления видны. Комментарий Курта Клифтона предоставляет дополнительный контекст.
.keyboardShortcut, появившийся в iOS 14, позволяет назначать сочетания клавиш элементам управления. Эти сочетания активируют основное действие элемента управления. Модификатор позволяет настраивать клавиши-модификаторы, отличные от стандартной клавиши Command. Типичный пример демонстрирует навигацию между представлениями с помощью сочетаний клавиш, назначенных кнопкам. Удивительно, но сочетания клавиш остаются активными, даже когда соответствующий элемент управления находится за пределами экрана. Такое поведение связано с тем, что SwiftUI выполняет обход иерархии представлений в глубину для поиска целей для сочетаний клавиш. Система отдает приоритет поиску первого подходящего элемента управления, независимо от его видимости. Это может привести к неожиданному поведению, когда элементы управления, находящиеся за пределами экрана, все еще реагируют на сочетания клавиш. Решением этой проблемы является отключение элементов управления с помощью модификатора.disabledна основе состояния представления. Это гарантирует, что сочетания клавиш активны только тогда, когда соответствующие элементы управления видны. Комментарий Курта Клифтона предоставляет дополнительный контекст.