Как связать меню справки в приложении SwiftUI MacOS DocumentGroup с логикой приложения?
Приложения SwiftUI DocumentGroup предоставляют стандартные пункты меню, включая справку.
По умолчанию, когда мы запускаем приложение и нажимаем «Справка» / «Справка MyApp», мы видим «Справка недоступна для MyApp».
Вот основное приложение:
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
DocumentGroup(newDocument: { MyDocument() }) { configuration in
ContentView()
}
.commands {
// use CommandGroup to modify built-in menu behavior
// the following would work to replace the entire help menu
// but I just want to access the logic for the
// second of two Help sub-menus
CommandGroup(replacing: .help) {
// How do I access the logic for Help / MyApp Help?
}
}
}
}
Я просмотрел стандартную документацию, учебные пособия и рекомендации по пользовательскому интерфейсу, но не вижу многого о том, как интегрировать поведение и настройки в стандартные параметры меню. Любая помощь будет высоко оценена.
Этот вопрос год назад похож, но без ответа.
1 ответ
При работе с меню SwiftUI ключевыми объектами являются CommandGroup и CommandGroupPlacement .
Отличный пример есть в статье «Swift with Majid: Commands in SwiftUI от 24 ноября 2020 года» . Прокрутите почти до конца, чтобы увидеть, как использовать CommandGroupPlacement (например, .help или .newItem) для определения местоположений в стандартном меню.
В примере показано, как указать, должно ли наше содержимое отображаться до или после , или должно ли оно заменять указанное местоположение меню CommandGroupPlacement.
Обычно я предпочитаю письменную документацию видео, но видео и примеры кода, рекомендованные в комментариях к вопросу, весьма полезны — спасибо, user1046037.