Можно ли объединить WindowGroup и DocumentGroup в приложении SwiftUI iOS?

Я разрабатываю приложение SwiftUI для iOS, которое изначально начиналось с A WindowGroup. В другом представлении я решил, что мне нужно представить это представление как сцену DocumentGroup, чтобы воспользоваться всеми функциями, которые с ним связаны. Я не хочу, чтобы точкой входа в приложение была сцена DocumentGroup. Я просто хотел бы, чтобы точкой входа в мое приложение была сцена WindowGroup, а затем в другом представлении из сцены WindowGroup я хотел бы вызвать сцену DocumentGroup для открытия, как если бы приложение было приложением на основе документа. Любая помощь будет высоко ценится. Спасибо

1 ответ

Я тестировал в Xcode 13.3 и macOS 12.3. Я заметил, что объявляется первым, затем открывается только это окно, а файловый браузер не открывается при запуске приложения, и если закрыть окно, а затем щелкнуть значок док-станции приложения, он снова откроет новое окно. К сожалению, я заметил ошибку, из-за которой, если вы скомандуете + закроете приложение (а не остановите его) при следующем перезапуске, оно покажет и окно, и файловый браузер, а не только окно (я сообщу об этом).

      import SwiftUI

@main
struct DocumentTestApp: App {
    var body: some Scene {
        WindowGroup("Hello") { // group order matters
            VStack {
                Text("Hello")
             
                Button("New") {
                    NSDocumentController.shared.newDocument(nil)
                }
            }
            .padding()
        }
        }
        DocumentGroup(newDocument: DocumentTestDocument()) { file in
            ContentView(document: file.$document)
        }
        DocumentGroup(newDocument: DocumentTestDocument2()) { file in
            ContentView2(document: file.$document)
        }
        
    }
}
Другие вопросы по тегам