2 场景

原文链接: https://developer.apple.com/documentation/swiftui/scenes

2 场景

声明构成应用各个部分的界面分组。

概述

场景代表应用界面中的一部分,它拥有由系统管理的生命周期。一个 App 实例呈现它所包含的各个场景,而每个 Scene 则充当一个 View 层级的根元素。

系统会依据场景的类型、平台和上下文,以不同方式呈现场景。场景可能填满整个显示区域、占据显示区域的一部分、成为一个窗口、成为窗口中的一个标签页,或者呈现为其他形式。在某些情况下,应用还可能同时显示同一个场景的多个实例,例如用户基于应用中同一个 WindowGroup 声明同时打开多个窗口。关于主要内置场景类型的更多信息,参见窗口和文稿。

你使用修饰符来配置场景,就像配置视图一样。例如,当场景恰好出现在窗口中时,你可以用 windowStyle(_:) 修饰符调整容纳该场景的窗口的外观。类似地,你可以用 commands(content:) 修饰符添加菜单命令,让它们在场景于某些平台上处于前台时可用。

创建场景

  • Scene —— 应用界面中由系统管理其生命周期的一部分。
  • SceneBuilder —— 用于把一组场景组合成单个复合场景的结果构建器。

监控场景生命周期

管理设置窗口

  • Settings —— 呈现用于查看和修改应用设置界面的场景。
  • SettingsLink —— 打开应用所定义 Settings 场景的视图。
  • OpenSettingsAction —— 呈现应用设置场景的动作。
  • openSettings —— 存储在视图环境中的 Settings 呈现动作。

构建菜单栏

创建菜单栏附加项

  • MenuBarExtra —— 把自身渲染为系统菜单栏中常驻控件的场景。
  • menuBarExtraStyle(_:) —— 设置由该场景创建的菜单栏附加项的样式。
  • MenuBarExtraStyle —— 对菜单栏附加项场景外观与行为的规范说明。

创建手表通知

在外部显示器上呈现内容