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