1.最简单的Menu
struct ContentView: View {
var body: some View {
Menu("Options") {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
Button("Cancel", action: cancelOrder)
}
}
func placeOrder() { }
func adjustOrder() { }
func cancelOrder() { }
}
注意:On macOS, Menu is automatically rendered as a pulldown button
2.Menu嵌套Menu
struct ContentView: View {
var body: some View {
Menu("Options") {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
Menu("Advanced") {
Button("Rename", action: rename)
Button("Delay", action: delay)
}
Button("Cancel", action: cancelOrder)
}
}
func placeOrder() { }
func adjustOrder() { }
func rename() { }
func delay() { }
func cancelOrder() { }
}
3.自定义Menu标签
struct ContentView: View {
var body: some View {
Menu {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
} label: {
Label("Options", systemImage: "paperplane")
}
}
func placeOrder() { }
func adjustOrder() { }
}
4.iOS 15新特性,Menu单击触发一个primary action,长按触发另一个action
struct ContentView: View {
var body: some View {
Menu("Options") { // 长按触发
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
Button("Cancel", action: cancelOrder)
} primaryAction: {
justDoIt()
}
}
func justDoIt() { // 单击触发
print("Button was tapped")
}
func placeOrder() { }
func adjustOrder() { }
func cancelOrder() { }
}