0

我想从图形矩形并发症中删除文本,或将其设置为空字符串。默认情况下,它是应用程序名称。我试图在 watchKit plist 文件中将显示名称设置为“”,但这似乎并没有改变它。

如何从图形矩形 WatchOS5 复杂功能中删除文本?

我看到有某种方法可以获取(分配?)一个 CLKTextProvider,如下所述:https ://developer.apple.com/documentation/clockkit/clktextprovider但是,它似乎涉及添加一个可本地化的字符串文件,我不想要如果有一种更简单的方法可以仅为CLKComplicationTemplateGraphicRectangularLargeImage

    func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
        // This method will be called once per supported complication, and the results will be cached


        if complication.family == .graphicRectangular {
            let template =  GraphicTemplate()
            template.textProvider = CLKSimpleTextProvider.init(text: "")
            handler(template)
        }else {
            handler(nil)
        }
    }


class GraphicTemplate: CLKComplicationTemplateGraphicRectangularLargeImage {

}
4

1 回答 1

0

您不需要弄乱可本地化的字符串(呸)。

您需要在两个地方设置并发症的外观。

  1. 示例模板 - 在用户自定义面部并滚动浏览可用并发症列表时向用户显示。getLocalizableSample(for: withHandler:)正如您在问题中显示的那样,您在每个并发症系列的方法中提供此示例。

  2. 脸上显示的实际实时并发症,您getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void)CLKComplicationDataSource.

在这两个地方,您都需要使用文本提供程序返回模板(如果没有,您将在运行时崩溃),尽管返回空字符串很好。这应该删除应用程序名称。

    let template = CLKComplicationTemplateGraphicRectangularLargeImage()
    template.textProvider = CLKSimpleTextProvider.init(text: "")
    template.imageProvider = CLKFullColorImageProvider(fullColorImage: myImage)
    return template

(顺便说一句,你看过最近关于 watch os5 并发症的 Apple Tech Talk吗?这是一个很好的)。

于 2018-10-12T14:00:23.410 回答