Xamarin.Mac 中的情节提要简介

本文介绍如何在 Xamarin.Mac 应用中使用情节提要。 其中介绍了如何使用 Storyboard 和 Xcode 的 Interface Builder 创建和维护应用 UI。

情节提要允许你为 Xamarin.Mac 应用开发用户界面,该界面不仅包括窗口定义和控件,而且还包括不同窗口之间的链接(通过 segue)和视图状态。

Xcode 中的示例 UI

本文介绍如何使用情节提要定义 Xamarin.Mac 应用的用户界面。

什么是情节提要?

使用情节提要,Xamarin.Mac 应用的所有 UI 都可以在单个位置中定义,并包含其各个元素和用户界面之间的所有导航。 Xamarin.Mac 的情节提要的工作原理与 Xamarin.iOS 的情节提要非常相似。 不过,由于界面习惯用法不同,它们包含一组不同的 Segue 类型

使用场景

如上所述,情节提要定义了给定应用的所有 UI,划分为其视图控制器的功能概述。 在 Xcode 的 Interface Builder 中,每个控制器都位于其自己的场景中

示例视图控制器

每个场景代表一个给定的视图和视图控制器对,以及一组连接 UI 中每个场景的线条(称为 Segue),从而显示它们的关系。 有些 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 在不同窗口和视图状态之间导航。