【问题标题】:SwiftUI Widget Locale doesn't applySwiftUI 小部件区域设置不适用
【发布时间】:2021-04-30 01:50:06
【问题描述】:

我正在尝试在我的小部件中本地化日期,我想使用 Italian locale “它”,我已经在我的主应用程序的其他地方使用这个确切的代码,但不知何故,在我的小部件在模拟器和真实设备上的语言环境都不会改变

这是我在ViewModel 中的日期格式化程序

static let dateFormat: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "EEEE dd"
    formatter.locale = Locale(identifier: "it")
    return formatter
}()

这就是我在View中格式化日期的方式

Text("\(viewModel.nextDay, formatter: ViewModel.dateFormat)")

【问题讨论】:

  • 目前不支持该小部件。如果您更改系统语言,那么它将起作用。
  • 我的系统语言是意大利语,但还是不行
  • 尝试打印当前本地

标签: swift swiftui locale ios14 widgetkit


【解决方案1】:

可以使用 SwiftUI locale 环境键,比如

Text(entry.date, style: .date)
    .bold()
    .environment(\.locale, Locale(identifier: "it"))

使用 Xcode 12.1 测试

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2015-11-10
    • 2022-06-15
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多