Menu
用于显示菜单的控件。
struct Menu<Label, Content> where Label : View, Content : View
总览
下面的示例显示了一个包含三个按钮的菜单和一个子菜单,该菜单包含其自己的三个按钮。
Menu("Actions") {
Button("Duplicate", action: duplicate)
Button("Rename", action: rename)
Button("Delete…", action: delete)
Menu("Copy") {
Button("Copy", action: copy)
Button("Copy Formatted", action: copyFormatted)
Button("Copy Library Path", action: copyPath)
}
}
您可以使用来创建菜单的标题,如上一个示例所示,也可以使用创建多个视图(例如图像和文本视图)的视图构建器:
Menu {
Button("Open in Preview", action: openInPreview)
Button("Save as PDF", action: saveAsPDF)
} label: {
Image(systemName: "document")
Text("PDF")
}
样式菜单
使用修饰符可以更改视图中所有菜单的样式。下面的示例演示如何应用自定义样式:menuStyle(_:)
Menu("Editing") {
Button("Set In Point", action: setInPoint)
Button("Set Out Point", action: setOutPoint)
}
.menuStyle(EditingControlsMenuStyle())
主题
从内容创建菜单
1、init<S>(S, content: () -> Content)
创建一个菜单,该菜单从字符串生成标签。
Label符合View和Content符合时可用View。
2、init(LocalizedStringKey, content: () -> Content)
创建一个菜单,该菜单从本地化的字符串键生成其标签。
Label符合View和Content符合时可用View。
3、init(content: () -> Content, label: () -> Label)
创建带有自定义标签的菜单。
Label符合View和Content符合时可用View。
从配置创建菜单
1、init(MenuStyleConfiguration)
根据样式配置创建菜单。
在Labelis 和is 时可用。
2、MenuStyleConfiguration.LabelContentMenuStyleConfiguration.Content
struct MenuStyleConfiguration
菜单的配置。
样式菜单
1、struct DefaultMenuStyle
默认菜单样式,基于菜单的上下文。
2、struct BorderedButtonMenuStyle
菜单样式,显示带边框的按钮,按下该按钮可切换菜单内容的显示。
3、struct BorderlessButtonMenuStyle
菜单样式,显示无边界按钮,按下该按钮即可切换菜单内容的显示。
4、protocol MenuStyle
一种类型,它将标准交互行为和自定义外观应用于视图层次结构中的所有菜单。
应用标准修饰符
5、查看修饰符
通过应用标准修饰符配置此视图及其包含的视图。