如何将iPhone Watch应用中WidgetKit复杂功能的异常名称改为应用名?
解决watchOS WidgetKit复杂功能在iPhone端显示异常名称的问题
问题描述
在Xcode 14环境下开发watchOS 9的WidgetKit复杂功能,功能运行正常,但iPhone端Watch应用中该复杂功能的名称显示为COMPLICATION_TYPE_EDIT_LABEL_(NULL)_COMPANION,需要将其修改为自定义应用名称。
复现步骤
- 在Xcode 14中创建新项目
- 添加Watch App目标
- 添加watchOS Widget Extension目标
解决方案
方法1:通过Widget配置代码设置显示名称
在Widget Extension的主代码文件(通常命名为XXXWidget.swift)中,修改ComplicationConfiguration的初始化参数,明确指定自定义显示名称:
struct YourWidget: Widget { let kind: String = "YourWidget" var body: some WidgetConfiguration { ComplicationConfiguration( displayName: "你的自定义名称", // 这里填写想要显示的名称 supportedFamilies: [.circularSmall, .modularSmall, .utilitarianSmall, .modularLarge, .utilitarianLarge] ) { entry in YourWidgetEntryView(entry: entry) } } }
方法2:通过Info.plist配置显示名称
- 打开Widget Extension目标的
Info.plist文件 - 展开
NSExtension->NSExtensionAttributes节点 - 添加新的键值对:
- 键:
CLKComplicationDisplayName - 值:输入你想要显示的自定义名称
- 键:
方法3:本地化显示名称(多语言场景)
如果需要支持多语言显示,创建本地化的InfoPlist.strings文件:
- 在Widget Extension目标中新建Strings文件,命名为
InfoPlist.strings - 为需要支持的语言开启本地化(比如中文、英文)
- 在对应语言的
InfoPlist.strings文件中添加:
"CLKComplicationDisplayName" = "你的自定义名称";
完成以上任一操作后,重新编译部署应用,iPhone端Watch应用中的复杂功能名称就会显示为你设置的自定义内容。
内容的提问来源于stack exchange,提问作者Kamal Kumar Lakshmanan
相关产品推荐
相关产品推荐

