Как связать меню справки в приложении 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.

Другие вопросы по тегам