如何从 MacOS 以编程方式显示 Swift 视图

问题描述 投票:0回答:1

在 Xcode 15 下,我开发了一个用于计算数据的 MacOS 应用程序,完成后,我可以使用“窗口”菜单将数据绘制到单独的窗口中。在应用程序的主体中,我有以下代码,它创建菜单条目“Plot”:

var body: some Scene {
  WindowGroup("MainPage", id: "main-page") {
    GeneticGenealogyPage()
      .frame(minWidth: 750, maxWidth: 750, minHeight: 510, maxHeight: 510)
  }

  Window("Plot", id: "plot-page") {
    PlotViewPage()
      .frame(minWidth: 800, maxWidth: 800, minHeight: 750, maxHeight: 750)
  }
}

PlotViewPage 具有以下结构:

import SwiftUI
import Charts

struct PlotViewPage: View {
  @Environment(\.openWindow) private var openWindow

  var body: some View {
    HStack(alignment: .center, spacing: 0) {
      Text("Cumulative Distribution Function")
      VStack {
        // ...
      }
    }
  }
}

我不想使用菜单来显示绘图,而是希望在计算完成后立即以编程方式显示它。我怎样才能做到这一点?

我在网上找到了显然适用于 iOS 的方法,但还没有找到适用于 MacOS 的方法。

swift macos swiftui view
1个回答
0
投票

如果您想从视图中打开窗口,您可以使用

openWindow
环境键:

struct ContentView: View {
    @Environment(\.openWindow) var openWindow

    var body: some View {
        Button("Plot") {
            openWindow(id: "plot-page")
        }
    }
}

使用您在场景声明中为

id
提供的
Window

© www.soinside.com 2019 - 2024. All rights reserved.