macos - 具有 10 多个项目的 SwiftUI 菜单按钮
问题描述
我有一个 SwiftUI MenuButton 可以很好地处理 10 个或更少的项目:
struct ContentView: View {
var body: some View {
MenuButton("My Button") {
Button("A") { }
Button("B") { }
Button("C") { }
Button("D") { }
Button("E") { }
Button("F") { }
Button("G") { }
Button("H") { }
Button("I") { }
Button("J") { }
}
}
}
但是,当添加第 11 个项目时,它不会编译,因为 SwiftUI 将组的大小限制为 10。对于普通组(如 a VStack
),我只会将一些项目包装在 aGroup
或Section
中,但这会破坏MenuButton
.
将前 5 个元素包装在 a 中Group
:
将前 5 个元素包装在 a 中Section
:
将前 5 个元素包裹在 a 中VStack
(间距很好,但整个组可以一起选择):
这样做的正确方法是什么?