Добавить объявление

Системный меню-бар в iPadOS 26 теперь как в macOS

Привет! С выходом iPadOS 26 работа с системным меню-баром вышла на совершенно новый уровень. Теперь iPad получил полноценное меню в стиле macOS с разделами File, Edit, View и другими, но что еще важнее: Apple наконец-то дала разработчикам полноценный инструментарий для тонкой настройки этого меню. Давайте разберемся, какие возможности открываются и как это изменит подход к разработке интерфейсов.

От хаков к нативным решениям:


Раньше кастомизация системного меню требовала нестандартных решений и обходных путей. Теперь в iPadOS 26 появился UIMainMenuSystem - специализированный подкласс UIMenuSystem, предназначенный именно для работы с главным меню-баром. Доступ к нему осуществляется через синглтон:

let configuration = UIMainMenuSystem.Configuration()
UIMainMenuSystem.shared.setBuildConfiguration(configuration) { menuBuilder in
// Ваша логика кастомизации
menuBuilder.remove(menu: .file)
}

Точечный контроль над структурой меню:


Ключевое нововведение - возможность модифицировать меню динамически, без необходимости пересобирать всю структуру целиком. Новые методы UIMenuBuilder позволяют:

  • Заменять элементы: builder.replace(menu: .file, with: customMenu)

  • Вставлять пункты в нужную позицию: builder.insertElements([element], afterMenu: .view)

  • Удалять ненужное: builder.remove(action: .duplicate)

Упрощенная настройка через Configuration:


Отдельного внимания заслуживает UIMainMenuSystem.Configuration - класс, который группирует свойства для быстрой настройки основных групп меню:

let configuration = UIMainMenuSystem.Configuration()
configuration.newScenePreference = .removed
configuration.findingConfiguration.style = .search

Это изящная альтернатива ручному удалению элементов через buildHandler.

Гибкая настройка поиска:


Особенно полезным оказалось findingConfiguration. В зависимости от типа приложения можно выбрать один из четырех стилей:

  • .search - единый пункт Search вместо Find и Replace.

  • .nonEditableText - только поиск без замены.

  • .editableText - полный набор поиска и замены.

  • .automatic - система выбирает оптимальный вариант.

Практические сценарии применения:


Новые возможности особенно полезны для:

  • Адаптации меню под разные режимы работы приложения.

  • Скрытие системных команд, нерелевантных текущему контексту.

  • Быстрого добавления часто используемых действий.

  • Создания специализированных интерфейсов для профессиональных приложений.

Вывод:


Эти обновления знаменуют важный этап в развитии iPadOS, платформа становится еще ближе к macOS, предоставляя разработчикам инструменты для создания понастоящему профессиональных интерфейсов. Это особенно важно для сложных приложений, где контекстно-зависимое меню напрямую влияет на пользовательский опыт.
02.12.2025 54 516