xcode - 无法使用 SwiftUI Preview 在 Xcode 中预览 Widget

标签 xcode macos swiftui widgetkit

我正在尝试使用 Widget 上下文预览一些 View ,例如:

struct MyTasksView_Previews: PreviewProvider {
    static var previews: some View {
            MyTasksView(
                myTasks: Fake.myTasks,
                user: Fake.user,
                error: ""
            )
            .previewContext(WidgetPreviewContext(family: .systemMedium))
    }
}

但是,我在尝试运行预览时遇到此错误。而且,我不确定为什么会这样。

RemoteHumanReadableError: Unknown preview provider “MyTasksView_Previews” MyApp does not contain a preview provider named “MyTasksView_Previews”. Check your build settings to ensure the preview provider is compiled into your product.

我也尝试使用简单的 Text(text).previewContext(WidgetPreviewContext(family: .systemMedium)),但它也不起作用。我正在使用 Xcode beta 5。

在 Apple Emoji Rangers Demo App for WWDC 2020。我们可以看到这段代码进行预览:

struct CharacterNameView_Previews: PreviewProvider {
    static var previews: some View {
        CharacterNameView(CharacterDetail.panda)
            .previewContext(WidgetPreviewContext(family: .systemSmall))
    }
}

Emoji Rangers example

最佳答案

我遇到了类似的问题,我通过将 View 放入 VStack(或另一个容器)中解决了它。

这是我的有效代码:

struct WidgetViewPreviews: PreviewProvider {

  static var previews: some View {
    VStack {
      WidgetView(entry: .mock)
    }
    .previewContext(WidgetPreviewContext(family: .systemSmall))
  }
}

关于xcode - 无法使用 SwiftUI Preview 在 Xcode 中预览 Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63626253/

相关文章:

ios - 在没有 IBOutlet 的情况下将 IBAction 与 UIButton 一起使用

java - 如何在 OS X 中使用 Java 找到用户的 'Documents' 文件夹?

python - 在 Python 中使用 Mac 的听写

ios - 在 NavigationLink 中设置 editMode 时,SwiftUI EditButton() 不起作用

objective-c - 寻找内存泄漏时仪器中的颜色

ios - Xcode 6 Storyboard Unwind Segue with Swift 不连接退出

macos - 如何设置主窗口的位置和大小(以编程方式)?

ios - SwiftUI Picker 在 Xcode 11 beta 7 中不再工作

ios - 使用 SwiftUI 的 TextField 描边边框文本

ios - 从iPhone删除应用程序时Xcode崩溃