从菜单项调用 sheet
Calling a sheet from a menu item
我有一个 macOS 应用程序,当用户按下菜单项“信息”时,它必须显示一个包含一些信息的小对话框。
我试过用 .sheet
调用,但无法显示 sheet。代码:
@main
struct The_ThingApp: App {
private let dataModel = DataModel()
@State var showsAlert = false
@State private var isShowingSheet = false
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(self.dataModel)
}
.commands {
CommandMenu("Info") {
Button("Get Info") {
print("getting info")
isShowingSheet.toggle()
}
.sheet(isPresented: $isShowingSheet) {
VStack {
Text("Some stuff to be shown")
.font(.title)
.padding(50)
Button("Dismiss",
action: { isShowingSheet.toggle() })
}
}
}
}
}
}
如何显示菜单项中的 sheet?
但是,如果 sheet 不是这样做的方式(我认为考虑到我需要展示的内容的简单性,就可以了),你会建议我怎么做?我尝试创建一个新视图,就像我使用首选项 window 所做的那样,但我无法从菜单中调用它。
将sheet直接放在ContentView
上:
@main
struct The_ThingApp: App {
@State private var isShowingSheet = false
var body: some Scene {
WindowGroup {
ContentView()
// here VV
.sheet(isPresented: $isShowingSheet) {
VStack {
Text("Some stuff to be shown")
.font(.title)
.padding(50)
Button("Dismiss",
action: { isShowingSheet.toggle() })
}
}
}
.commands {
CommandMenu("Info") {
Button("Get Info") {
print("getting info")
isShowingSheet.toggle()
}
}
}
}
}
我有一个 macOS 应用程序,当用户按下菜单项“信息”时,它必须显示一个包含一些信息的小对话框。
我试过用 .sheet
调用,但无法显示 sheet。代码:
@main
struct The_ThingApp: App {
private let dataModel = DataModel()
@State var showsAlert = false
@State private var isShowingSheet = false
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(self.dataModel)
}
.commands {
CommandMenu("Info") {
Button("Get Info") {
print("getting info")
isShowingSheet.toggle()
}
.sheet(isPresented: $isShowingSheet) {
VStack {
Text("Some stuff to be shown")
.font(.title)
.padding(50)
Button("Dismiss",
action: { isShowingSheet.toggle() })
}
}
}
}
}
}
如何显示菜单项中的 sheet?
但是,如果 sheet 不是这样做的方式(我认为考虑到我需要展示的内容的简单性,就可以了),你会建议我怎么做?我尝试创建一个新视图,就像我使用首选项 window 所做的那样,但我无法从菜单中调用它。
将sheet直接放在ContentView
上:
@main
struct The_ThingApp: App {
@State private var isShowingSheet = false
var body: some Scene {
WindowGroup {
ContentView()
// here VV
.sheet(isPresented: $isShowingSheet) {
VStack {
Text("Some stuff to be shown")
.font(.title)
.padding(50)
Button("Dismiss",
action: { isShowingSheet.toggle() })
}
}
}
.commands {
CommandMenu("Info") {
Button("Get Info") {
print("getting info")
isShowingSheet.toggle()
}
}
}
}
}