2 场景
2 分钟阅读
原文链接: https://developer.apple.com/documentation/swiftui/scenes
2 场景
声明构成应用各个部分的界面分组。
概述
场景代表应用界面中的一部分,它拥有由系统管理的生命周期。一个 App 实例呈现它所包含的各个场景,而每个 Scene 则充当一个 View 层级的根元素。

系统会依据场景的类型、平台和上下文,以不同方式呈现场景。场景可能填满整个显示区域、占据显示区域的一部分、成为一个窗口、成为窗口中的一个标签页,或者呈现为其他形式。在某些情况下,应用还可能同时显示同一个场景的多个实例,例如用户基于应用中同一个 WindowGroup 声明同时打开多个窗口。关于主要内置场景类型的更多信息,参见窗口和文稿。
你使用修饰符来配置场景,就像配置视图一样。例如,当场景恰好出现在窗口中时,你可以用 windowStyle(_:) 修饰符调整容纳该场景的窗口的外观。类似地,你可以用 commands(content:) 修饰符添加菜单命令,让它们在场景于某些平台上处于前台时可用。
创建场景
- Scene —— 应用界面中由系统管理其生命周期的一部分。
- SceneBuilder —— 用于把一组场景组合成单个复合场景的结果构建器。
监控场景生命周期
- scenePhase —— 场景当前的阶段。
- ScenePhase —— 对场景运行状态的指示。
管理设置窗口
- Settings —— 呈现用于查看和修改应用设置界面的场景。
- SettingsLink —— 打开应用所定义 Settings 场景的视图。
- OpenSettingsAction —— 呈现应用设置场景的动作。
- openSettings —— 存储在视图环境中的 Settings 呈现动作。
构建菜单栏
- 用 SwiftUI 构建并自定义菜单栏 —— 为 iPadOS 和 macOS 构建原生菜单栏,提供无缝的跨平台体验。
创建菜单栏附加项
- MenuBarExtra —— 把自身渲染为系统菜单栏中常驻控件的场景。
- menuBarExtraStyle(_:) —— 设置由该场景创建的菜单栏附加项的样式。
- MenuBarExtraStyle —— 对菜单栏附加项场景外观与行为的规范说明。
创建手表通知
- WKNotificationScene —— 在收到指定类别的远程或本地通知时出现的场景。
在外部显示器上呈现内容
- sceneAccessory(content:) —— 定义与
self关联的任何场景配件。 - SceneAccessoryContent —— 遵循该协议的类型表示那些为场景配件定义内容的条目。
- ExternalNonInteractiveAccessory —— 在外部显示器上呈现非交互内容的场景配件。