我想在我的 macOS 应用程序中单击一个按钮时显示一个带有标题和操作按钮的工作表。虽然这有效,但我确实遇到了包含按钮的宽度问题:它们仅使用其固有的宽度而不是其父级的宽度。
我目前正在对宽度进行硬编码并将其应用到按钮上——这可行,但并不是很性感。工作表看起来像这样:
那更像。这是我的代码:
struct ContentView: View {
@State private var showSheet = false
var body: some View {
VStack {
Text("My View")
Button {
showSheet = true
} label: {
Text("Show Sheet…")
}
}
.sheet(isPresented: $showSheet) {
SheetView(showSheet: $showSheet)
}
}
}
struct SheetView: View {
@Binding var showSheet: Bool
let width = CGFloat(200.0)
var body: some View {
VStack {
Text("FooBar")
Divider()
Button {
showSheet = false
} label: {
Label("Foo", systemImage: "paperclip")
.frame(width: width)
}
Button {
showSheet = false
} label: {
Label("FooBarBuzz", systemImage: "paperclip")
.frame(width: width)
}
Button {
showSheet = false
} label: {
Label("Cancel", systemImage: "xmark")
.frame(width: width)
}
}
.padding()
}
}
我的目标是将工作表中所有子视图的宽度设置为宽度最大的子视图 - 我该怎么做?