42

我正在尝试从 Xcode 11 运行新的 Canvas 功能,但 Canvas 不会出现。我究竟做错了什么?

我刚刚创建了一个新的默认项目(单视图应用程序),对其进行编译并激活了“编辑器 > 编辑器和画布”。我可以导航到项目中的每个文件,没有任何显示。

还需要做什么?

4

17 回答 17

63

您需要使用Catalina macOS 版本(10.15),如官方教程中所述

注意:Catalina 不支持 32 位应用程序,一些旧应用程序在更新后将停止工作。

于 2019-06-03T22:16:12.107 回答
24

您仍然可以在操场上看到实时视图(未安装 Catalina)。使用UIHostingController.

import UIKit
import SwiftUI
import PlaygroundSupport



struct ContentView : View {
    var body: some View {

        Text("Hello World")
            .foregroundColor(Color.blue)
    }
}

// Present the view controller in the Live View window
PlaygroundPage.current.liveView = UIHostingController.init(rootView: ContentView())

在此处输入图像描述

于 2019-06-05T06:17:29.120 回答
16

根据Apple的官方教程,进一步添加其他答案:

要在 Xcode 中预览画布中的视图并与之交互,请确保您的 Mac 运行的是 macOS 10.15 beta。

不幸的是,由于测试版刚刚发布,我现在无法运行它,而且我没有备用 Mac!

于 2019-06-04T01:44:05.923 回答
16

更新 Mac OS 版本 10.15 或更高版本。更新 Xcode 11 或更高版本。之后单击 Editor > Canvas 进行代码预览。

奖励:如果您想查看左侧的代码预览,您可以从菜单图标 > 布局 > 画布右侧更改布局。(我分享了截图)

奖金信息截图

于 2019-11-16T15:38:54.113 回答
11

我尝试了所有这些步骤,但后来意识到我的文件中没有我的PreviewProvider设置。没有这个,预览将不会显示。

确保你有这样的设置:

struct YourView_Previews: PreviewProvider {
    static var previews: some View {
        YourView()
    }
}

然后,您可以按照此线程中其他答案的建议进行操作,您的画布窗口应该会立即弹出。

于 2021-03-31T14:22:40.603 回答
11

预览版仅适用于 MacOS 10.15 Beta

您需要在 Xcode 11.0-Beta 中点击 Editor and Canvas Option,或者您可以从顶部选项点击 Editor -> Editor and Canvas

附上截图供参考。图片

图 2

于 2019-06-07T07:21:39.237 回答
10

复制swift文件的内容,


将文件移至回收站


再次创建 swift 文件


粘贴并运行您的代码




于 2020-02-13T00:17:23.897 回答
3

如果您将 swiftUI 文件移动到新文件夹,画布将不会出现,最好的解决方案是复制文件中的所有代码,然后将文件删除到垃圾箱中,然后创建一个新文件并粘贴您的代码

脚步:

  1. 复制文件代码

  2. 删除文件

  3. 创建一个同名的新文件

  4. 将代码传递到新文件

于 2020-08-05T09:08:37.480 回答
2

如果您将 Xcode 升级到更高的 beta 版本并在此过程中收到以下错误消息,则可能会出现这种情况:

加载插件失败

无法加载路径“/Applications/Xcode-beta.appDownloads/Xcode-beta.app/Contents/PlugIns/UVKit.framework”的插件“com.apple.dt.UVKit”。插件或其必备插件之一可能丢失或损坏。插件或其必备插件之一可能丢失或损坏,可能需要重新安装。

解决方案似乎是将Catalina beta版本升级到相同级别。这是 Apple Beta 软件下载的链接。

于 2019-09-05T13:15:28.233 回答
2

您必须至少安装 macOS 版本(10.15 或更高版本)

于 2019-09-24T11:21:52.570 回答
2

此外,请确保在您的 SwiftUI 文件中调用此函数(在实际View结构之外)。

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView() // Initialize your struct
    }
}
于 2020-03-29T11:17:40.980 回答
1

除了运行 MacOS Catalina [beta] 之外,您似乎还需要安装命令行工具,否则它会失败并“暂停”画布(这发生在 Xcode 11 Beta 2 中)。要安装它们,请运行:

xcode-select --install
于 2019-06-28T15:22:20.177 回答
1

画布预览仅在将 MacOS 10.14 更新到 10.15 后才有效

我们有 Mac OS Catalina Beta 版 (10.15)

升级你的系统,它就可以工作了。:)

检查此链接

于 2019-09-24T15:05:34.550 回答
1

一些重要的清单,请一一检查。如果这一切都完成了,您可以轻松获得“编辑器和画布”选项。

  1. 您的 MacOS 版本等于或高于 10.15

  2. 您至少使用 Xcode 11 Beta 或更高版本。如果您有 Xcode 11 但您的 MacOS 低于 10.15 ,您将无法看到该选项。

  3. 从终端运行命令:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

接着

sudo xcodebuild -license

  1. 如果检查清单 1 和 2 已完成,请转到首选项选项并选择命令行工具。首选项 -> 位置并将命令行工具分配给 Xcode 11/Beta。

大多数时候,选项 4 是问题所在。

于 2019-10-11T08:25:10.420 回答
1

对 Xcode 为SwiftUI画布提供的功能感到沮丧(以及它没有告诉您您需要升级到 Catalina 才能使用此功能),我决定创建自己的工具:QDesigner. 这是一款 iPad 应用程序,您可以在其中简单地在 iPhone 画布上拖放SwiftUI控件,轻点几下对其进行自定义,SwiftUI轻点一下即可生成代码。无需 Xcode

QDesigner可通过 TestFlight 获得第一个 Beta :
https ://testflight.apple.com/join/aSXW5tVp

还有一个QDesigner Client适用于 iPhone 的配套应用程序,可以连接QDesigner在 iPad 上运行,以在目标设备上查看您的 UI 设计,实时更新:
https ://testflight.apple.com/join/DQv0DBJU

我希望它至少对你们中的一些人有所帮助!让我知道您的想法,当然还有大量工作要使其功能齐全,但第一个测试版已经对基本SwiftUI使用有益。

通过访问网站查看演示视频QDesigner并了解更多信息:
https ://Q-Mobile.IT/Q-Designer

QDesigner1

QDesigner2

QDesigner3

于 2020-03-08T13:46:26.590 回答
1

要在 Xcode 中预览画布中的视图并与之交互,请确保您的 Mac 运行的是MacOS 10.15 beta

SwiftUI 开发工具仅在 macOS 10.15 beta 上运行时可用。

https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

于 2019-06-22T17:21:16.590 回答
0

对于想要将预览移到右侧的人...将布局(工作区的右角倒数第二个选项)更改为“右侧的画布”更改 Xcode 预览位置 giridharan

于 2021-04-12T11:25:25.440 回答