外观风格
创建 macOS App
在创建了一个 watchOS 版本的 Landmarks 之后,让我们把目光投向更大的内容:将 Landmarks 运行在 Mac 上。在你目前为止所学到的基础上,强化你在构建 iOS、watchOS 和 macOS 的 SwiftUI 应用的经验。
首先,给项目添加一个 macOS target,然后重用在 iOS app 中创建的共享数据。当所有资源都准备好后,你就可以通过创建 SwiftUI 视图,在 macOS 上显示详细信息和列表视图。

请先下载本节资源文件,并按照下面的步骤进行。
- 预计完成时间:30 分钟
- 资源文件:下载
1. 添加一个 macOS Target
首先在项目中添加一个macOS目标。Xcode为macOS应用程序添加一个新的组和一组启动文件,以及构建和运行该应用程序所需的方案。然后你将添加一些现有的文件到新的目标中。
为了能够预览和运行该应用程序,请确保您的Mac运行macOS Monterey或更高版本。

第 1 步
选择文件>新建>目标。当模板表出现时,选择macOS标签,选择App模板,并点击下一步。
这个模板在项目中添加了一个新的macOS应用目标。

第 2 步
在工作表中,输入MacLandmarks作为产品名称。将界面设置为SwiftUI,将生命周期设置为SwiftUI App,将语言设置为Swift,然后点击完成。

第 3 步
将该方案设置为MacLandmarks > My Mac。
通过将方案设置为我的Mac,你可以预览、构建和运行macOS应用程序。随着你在教程中的进展,你将使用其他方案来关注其他目标对共享文件的变化的反应。

第 4 步
在MacLandmarks组中,选择ContentView.swift,打开Canvas,并点击Resume来查看预览。
SwiftUI同时提供了一个默认的主视图及其预览提供者,就像iOS应用程序一样,使你能够预览应用程序的主窗口。

第 5 步
在项目导航器中,从MacLandmarks组中删除MacLandmarksApp.swift文件;当被询问时,选择移动到垃圾箱。
与watchOS应用程序一样,你不需要默认的应用程序结构,因为你将重新使用你已经拥有的结构。

接下来,你将把iOS应用中的视图、模型和资源文件与macOS目标共享。
第 6 步
在项目导航器中,点击命令选择以下文件。LandmarksApp.swift,LandmarkList.swift, LandmarkRow.swift, CircleImage.swift, MapView.swift, and FavoriteButton.swift。
其中第一个是共享应用程序的定义。其他的是可以在macOS上使用的视图。

第 7 步
继续点击命令,选择模型和资源文件夹中的所有项目,以及Asset.xcassets。
这些项目定义了应用程序的数据模型和资源。

第 8 步
在文件检查器中,为所选文件的目标成员添加MacLandmarks。

添加一个macOS应用程序的图标集,以配合其他目标的图标。
第 9 步
选择MacLandmarks组中的Assets.xcasset文件,删除空的AppIcon项目。
你将在下一步骤中替换它。

第 10 步
将AppIcon.appiconset文件夹从下载的项目的资源文件夹中拖入MacLandmark的资产目录。

第 11 步
在MacLandmarks组的ContentView中,添加LandmarkList作为顶层视图,并对框架大小进行限制。
预览不再构建,因为LandmarkList使用了LandmarkDetail,但你还没有为macOS应用程序定义一个细节视图。你将在下一节中处理这个问题。