首页 > 解决方案 > SwiftUI 小部件区域设置不适用

问题描述

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

这是我的日期格式化程序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)")

标签: swiftswiftuilocaleios14widgetkit

解决方案


可以使用 SwiftUIlocale环境键,例如

演示

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

使用 Xcode 12.1 测试


推荐阅读