【问题标题】:Xcode 11 beta swift ui preview not showingXcode 11 beta swift ui 预览未显示
【发布时间】:2019-11-02 19:46:53
【问题描述】:

只是玩 Swift UI 基本应用程序,即使我处于画布模式,预览画布也没有显示。应用程序运行,我有这个小sn-p 我错过了什么?

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
       ContentView()
    }
}
#endif

【问题讨论】:

  • 确保您的 Mac 运行的是 macOS 10.15 beta
  • 啊,我没有意识到这是必需的

标签: swift xcode swiftui


【解决方案1】:

也许有人正在寻找这个: Editor -> Canvas (Alt + Command + Enter)

【讨论】:

  • 为什么谢谢你!我花了太长时间才找到这个
  • 1 小时寻找此按钮。这让我想知道是谁把它放在那里的有福的开发者。
  • 是的。谢谢!
  • 非常感谢!
【解决方案2】:

要打开预览画布,只需转到Editor -> Canvas

或者执行 Alt + Command + Enter

如果您的 macOS 版本低于 10.15,您将收到以下错误

更新 mac 并尝试相同的操作。

【讨论】:

    【解决方案3】:

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

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

    请查看以下网址中的苹果文档 https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_2_release_notes

    Xcode 11 beta 支持使用 SwiftUI 进行开发。

    注意

    SwiftUI 开发工具仅在 macOS 上运行时可用 Catalina 10.15 测试版。

    【讨论】:

    • 我想知道他们为什么强迫你升级整个操作系统只是为了能够使用一些更新版本的 SDK。
    【解决方案4】:

    来自编辑:

    编辑器的右上角,然后:


    从菜单

    Editor -> Canvas


    快捷方式

    打开画布

    ⌥选项 + ⌘命令 + ↩返回

    刷新画布

    ⌥选项 + ⌘命令 + P


    关于 macOS 的说明

    在mac环境下,你可以在Help菜单下搜索任意菜单选项,就会打开你要找的那个菜单路径。

    例如,搜索 canvas 会导致:

    【讨论】:

      【解决方案5】:

      此外,如果您使用的 macOS 系统早于 10.14 等 beta 版本,您可以使用 Xcode Playground 预览以下代码。

      import PlaygroundSupport
      import SwiftUI
      
          struct ContentView : View {
              var body: some View {
                  Text("Hello World")
              }
          }
       PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())
      

      【讨论】:

      • 它给出了这个错误 - 没有这样的模块'PlaygroundSupport'
      • 您是否有可能为 macOS 或其他东西创建了 Playground?你可以尝试创建新的游乐场@ElshadKarimov
      • 创建而不是再试一次 :) @ElshadKarimov
      • Catalina + Xcode 11b3 + Playground = 不工作预览
      • 如果您使用的是 Catalina,为什么要尝试使用 Playground?我的答案是不使用 macOS 10.15 Catalina 的人。 @iTux
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        我在 Catalina 10.15.7 上运行 Xcode 12.2,我不仅需要确保选择了 Canvas,而且还需要从编辑器菜单中选择创建预览。

        【讨论】:

        • 事实证明,如果您创建 Swift 文件,则这是必要的,但如果您创建 SwiftUI 文件,则不需要。我认为 SwiftUI 文件只是一个 Swift 文件,它会为您创建预览。
        【解决方案8】:

        Xcode 11 Beta 6 中,对于未设置某些标志的视图存在一个已知问题和解决方法(见下文)。

        如果这适用于您,并且您无法设置相应的标志,您可能需要删除 ContentView_Previews 周围的 #if debug 标志,直到该问题在未来的 Xcode 版本中得到解决。

        Xcode 11 Beta 6 Release Notes

        在没有为OTHER_SWIFT_FLAGS 设置-DDEBUG 并包含在#if DEBUG 中的项目中定义的预览提供程序不会显示在画布中。例如,在从未有机会指定 OTHER_SWIFT_FLAGS 的 Objective-C 应用程序中就会发生这种情况。 (51138834)

        解决方法:PreviewProvider 声明周围删除 #if DEBUG#endif

        【讨论】:

          【解决方案9】:

          查看此 xcode_11_beta_5_release_notes https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_5_release_notes

          在 Xcode 11 beta 5 中,预览仅在 macOS Catalina 上可用 10.15 beta 5,只有 Xcode 11 beta 5 支持在 macOS Catalina 10.15 beta 5 上预览。(52059562)

          【讨论】:

            【解决方案10】:

            我已经重新启动了 Xcode 和机器,它对我有用。 你可以试试这个解决很多问题。

            【讨论】:

              猜你喜欢
              • 2019-12-19
              • 1970-01-01
              • 2019-11-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-12-19
              相关资源
              最近更新 更多