在 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 的方法。
openWindow
环境键:
struct ContentView: View {
@Environment(\.openWindow) var openWindow
var body: some View {
Button("Plot") {
openWindow(id: "plot-page")
}
}
}
使用您在场景声明中为
id
提供的 Window
。