8 菜单与命令

原文链接: https://developer.apple.com/documentation/swiftui/menus-and-commands

8 菜单与命令

以节省空间、依赖上下文的方式访问命令和控件。

概述

用菜单为人们提供对常用命令的便捷访问。你可以用 commands(content:) 场景修饰符向 macOS 或 iPadOS 应用的菜单栏添加条目,也可以用 contextMenu(menuItems:) 视图修饰符创建在人们当前任务附近展开的上下文菜单。

把 Menu 实例嵌套在其他实例中,即可创建子菜单。用 Divider 视图在菜单元素之间创建分隔线。

关于设计指导,参见 Human Interface Guidelines 中的菜单。

构建菜单栏

创建菜单

创建上下文菜单

定义命令

  • commands(content:) —— 为场景添加命令。
  • commandsRemoved() —— 移除被修改场景所定义的所有命令。
  • commandsReplaced(content:) —— 用构建器中的命令替换被修改场景所定义的所有命令。
  • Commands —— 遵循该协议的类型表示一组相关命令,可以通过 macOS 的主菜单或 iOS 的按键命令暴露给用户。
  • CommandMenu —— 命令菜单是独立、顶层的容器,用来放置执行相关应用专属命令的控件。
  • CommandGroup —— 你可以添加到已有命令菜单中的一组控件。
  • CommandsBuilder —— 从多表达式闭包构造命令集。与 ContentBuilder 一样,它支持闭包体中最多的十个表达式。
  • CommandGroupPlacement —— 你可以把新命令组放在相对于它们的标准位置。

获取内置命令组

显示菜单指示器

配置菜单关闭行为

设置偏好顺序

  • menuOrder(_:) —— 设置从该视图呈现的菜单中条目的偏好顺序。
  • menuOrder —— 从该视图呈现的菜单中条目的偏好顺序。
  • MenuOrder —— 菜单呈现其内容的顺序。

已弃用的类型