SwiftUI Menu

用于显示操作菜单的控件
iOS 14.0+iPadOS 14.0+macOS 11.0+Mac Catalyst 14.0+

以下示例显示了一个包含三个按钮的菜单和一个子菜单,其中包含自己的三个按钮。

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)
    }
}

您可以使用 LocalizedStringKey 创建菜单的标题,如前面的示例所示,或者使用创建多个视图的视图构建器,例如图像和文本视图:

Menu {
    Button("Open in Preview", action: openInPreview)
    Button("Save as PDF", action: saveAsPDF)
} label: {
    Label("PDF", systemImage: "doc.fill")
}

主要行动

可以使用自定义主要操作创建菜单。 主要操作将在用户点击或单击控件主体时执行,菜单呈现将在辅助手势上发生,例如长按或单击菜单指示器。 以下示例创建了一个添加书签的菜单,其中包含在菜单中显示的高级选项。

Menu {
    Button(action: addCurrentTabToReadingList) {
        Label("Add to Reading List", systemImage: "eyeglasses")
    }
    Button(action: bookmarkAll) {
        Label("Add Bookmarks for All Tabs", systemImage: "book")
    }
    Button(action: show) {
        Label("Show All Bookmarks", systemImage: "books.vertical")
    }
} label: {
    Label("Add Bookmark", systemImage: "book")
} primaryAction: {
    addBookmark()
}

菜单样式

使用 menuStyle(_:) 修饰符更改视图中所有菜单的样式。 以下示例显示了如何应用自定义样式:

Menu("Editing") {
    Button("Set In Point", action: setInPoint)
    Button("Set Out Point", action: setOutPoint)
}
.menuStyle(EditingControlsMenuStyle())