Xamarin.Mac 中的情节提要简介
本文介绍如何在 Xamarin.Mac 应用中使用情节提要。 其中介绍了如何使用 Storyboard 和 Xcode 的 Interface Builder 创建和维护应用 UI。
情节提要允许你为 Xamarin.Mac 应用开发用户界面,该界面不仅包括窗口定义和控件,而且还包括不同窗口之间的链接(通过 segue)和视图状态。
本文介绍如何使用情节提要定义 Xamarin.Mac 应用的用户界面。
什么是情节提要?
使用情节提要,Xamarin.Mac 应用的所有 UI 都可以在单个位置中定义,并包含其各个元素和用户界面之间的所有导航。 Xamarin.Mac 的情节提要的工作原理与 Xamarin.iOS 的情节提要非常相似。 不过,由于界面习惯用法不同,它们包含一组不同的 Segue 类型。
使用场景
如上所述,情节提要定义了给定应用的所有 UI,划分为其视图控制器的功能概述。 在 Xcode 的 Interface Builder 中,每个控制器都位于其自己的场景中。
每个场景代表一个给定的视图和视图控制器对,以及一组连接 UI 中每个场景的线条(称为 Segue),从而显示它们的关系。 有些 Segue 定义了一个视图控制器如何包含一个或多个子视图或视图控制器。 还有些 Segue 定义了视图控制器之间的转换(例如显示弹出框或对话框)。
最需要注意的是,每个 Segue 都代表应用 UI 的给定元素之间某种形式的数据流。
使用视图控制器
视图控制器定义了 Mac 应用内给定信息视图与提供该信息的数据模型之间的关系。 情节提要中的每个顶级场景代表 Xamarin.Mac 应用代码中的一个视图控制器。
这样,每个视图控制器都是信息的视觉表示形式(视图)以及呈现和控制该信息的逻辑的独立可重用配对。
在给定的场景中,可以执行通常由各个 .xib
文件处理的所有操作:
- 放置子视图和控件(例如按钮和文本框)。
- 定义元素位置和自动布局约束。
- 连接操作和出口以向代码公开 UI 元素。
使用 Segue
如上所述,Segue 提供了定义应用 UI 的所有场景之间的关系。 如果你熟悉 iOS 中情节提要的使用方式,则就会知道,iOS 的 Segue 通常定义全屏视图之间的转换。 这与 macOS 不同,Segue 通常定义“包含”(其中一个场景是父场景的子场景)。
在 macOS 中,大多数应用倾向于使用拆分视图和选项卡等 UI 元素将其视图分组在同一窗口中。 与 iOS 不同的是,由于物理显示空间有限,视图需要在屏幕内外转换。
鉴于 macOS 的包容性倾向,在某些情况下会使用呈现 Segue,例如模态窗口、工作表视图和弹出窗口。
使用呈现 Segue 时,可以重写用于呈现的父视图控制器的 PrepareForSegue
方法,以初始化变量并向正在呈现的视图控制器提供任何数据。
设计和运行时
在设计时(在 Xcode 的 Interface Builder 中布局 UI 时),应用 UI 的每个元素都被分解为其构成项:
- 场景 - 由以下项组成:
- 视图控制器 - 定义视图与支持视图的数据之间的关系。
- 视图和子视图 - 构成用户界面的实际元素。
- 包含 Segue - 定义场景之间的父子关系。
- 呈现 Segue - 定义单独的呈现模式。
以这种方式定义每个元素,可以仅在运行时根据需要延迟加载每个元素。 在 macOS 中,整个过程旨在允许开发人员创建复杂、灵活的用户界面,只需最少的支持代码即可使其正常工作,同时尽可能高效地利用系统资源。
情节提要快速入门
在情节提要快速入门指南中,我们将创建一个简单的 Xamarin.Mac 应用,用于介绍使用情节提要创建用户界面的关键概念。 示例应用将包含一个拆分视图,其中包含一个内容区域和一个检查器区域,并且将呈现一个简单的“首选项”对话框窗口。 我们会使用 Segue 将所有用户界面元素关联在一起。
使用情节提要
本部分详细介绍如何在 Xamarin.Mac 应用中使用情节提要。 我们将深入了解了场景,以及它们如何由视图控制器和视图组成。 然后,我们将了解场景如何与 Segue 关联在一起。 最后,我们了解如何使用自定义 Segue 类型。
总结
本文简要介绍了如何在 Xamarin.Mac 应用中使用情节提要。 我们已了解如何使用情节提要创建新应用以及如何定义用户界面。 我们还了解了如何使用 Segue 在不同窗口和视图状态之间导航。