5

Apple Notes 小部件展示了理想的示例。添加 Apple Notes 小部件时,WidgetKit 会继续为新小部件分配 IntentConfiguration。您可以通过编辑小部件并注意到选择元素没有读取“选择”而是包含自动选择为新小部件的默认值的注释或文件夹的名称来看到这一点。您还会注意到,此占位符小部件的数据源不会从一个源更改为另一个源 - 分配的 IntentConfiguration 受到尊重。

我们如何在我们的小部件中做到这一点?它应该看起来像这样:有人创建了一个新的小部件,我们使用他们最近的数据项作为占位符,并且该项目是 1) 保留在小部件中,直到他们更改它 2) 反映在编辑小部件对话框中。

4

1 回答 1

5

我一直在寻找相同的东西,试图为动态类型设置一个默认值,所以想法设置一个默认值,就像你可以在意图定义文件中使用枚举一样。简短的回答我们需要在代码中设置动态类型默认值。

所以在一些挖掘之后遇到了这个(我的命令在我的代码中单击了我的 ConfigurationIntent 引用并得到了苹果自动生成的 ConfigurationIntent.swift )

/*! @abstract Default values for parameters with dynamic options
 @discussion Called to query the parameter default value.
 */
@available(iOS 14.0, macOS 10.16, watchOS 7.0, *)
@objc(defaultChartTypeForConfiguration:)    
optional func defaultChartType(for intent: ConfigurationIntent) -> Chart?

在这里,我们有“可选基金 defaultChartType”,所以我将它植入到将为您生成的 intenthandler.swift 中,然后您必须在其中添加代码来检索和返回动态类型。这应该在任何关于在小部件配置屏幕中显示动态的教程中介绍。所以现在在这个文件中我也刚刚添加了上面的可选函数。ChartType 是我在 intentDefinition 文件中创建的动态类型。你的名字会有所不同以匹配你的名字

它的工作方式是这样的。希望对您有所帮助,您可以关注它。

于 2020-11-20T00:39:14.843 回答