ios - 在具有动态数据的 WidgetKit 中,如何为新的 WidgetKit 指定默认的 IntentConfiguration?

标签 ios objective-c swift swiftui widgetkit

Apple Notes WidgetKit 展示了理想的示例。添加 Apple Notes WidgetKit 时,WidgetKit 会继续为新 WidgetKit 分配一个 IntentConfiguration。您可以通过编辑 WidgetKit 来查看这一点,并注意到选择元素不是“选择”,而是包含自动选择为新 WidgetKit 默认值的笔记或文件夹的名称。您还会注意到,此占位符 WidgetKit 的数据源不会从一个源更改为另一个源 - 分配的 IntentConfiguration 受到尊重。
我们如何在我们的 WidgetKit 中做到这一点?它应该看起来像这样:有人创建了一个新的 WidgetKit ,我们使用他们最近的数据项作为占位符,并且该项目 1) 保留在 WidgetKit 中,直到他们更改它 2) 反射(reflect)在编辑 WidgetKit 对话框中。

最佳答案

我一直在寻找相同的东西,试图为动态类型设置默认值,所以想法设置了一个默认值,就像在意图定义文件中使用枚举一样。
简短的回答我们需要在代码中设置动态类型默认值。
所以经过一番挖掘后发现了这个(我命令在我的代码中点击我的 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 中,然后您必须在其中添加代码来检索和返回动态类型。任何关于在 WidgetKit 配置屏幕中显示动态的教程都应该涵盖这一点。
所以现在在这个文件中我也刚刚添加了上面的可选函数。
ChartType 是我在 intentDefinition 文件中创建的动态类型。你的将与你的名字不同
并以这种方式工作。希望有所帮助,您可以关注它。

关于ios - 在具有动态数据的 WidgetKit 中,如何为新的 WidgetKit 指定默认的 IntentConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64185931/

相关文章:

ios - 如何在swift中使用可选的 "?"和 "!"?

ios - 方法在操作中复制数组中的项目

objective-c - 初始化 boolean 数组 - 返回 null

ios - UIStackView 隐藏 View 动画

iphone - NSRegularExpression 在 iOS 中检测 em-dash

ios - 如何设置 AFNetworking 2.0 默认 header ?

xcode - 从一个文本字段输入文本到多个标签(在 swift 中)

swift - 在弱变量上使用可选链接的调用方法导致 EXC_BAD_ACCESS

ios - 我的应用程序显示 2 个工具栏而不是一个

ios - 如何中断 UIView 动画