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、查看修饰符
通过应用标准修饰符配置此视图及其包含的视图。