如何解决列出所有区域设置标识符和相应的区域文本 Swiftui
我想生成一个包含所有区域设置标识符的列表,供用户选择作为默认值。类似于在标准设置中选择区域。
因此我想生成一个列表,其中包含例如“澳大利亚”、“奥地利”、“阿塞拜疆”、……、“也门”、“赞比亚”、“津巴布韦”。如果用户选择“澳大利亚”,我想返回 en_AU
。
因此需要确定 Locale
下可以使用的属性以及如何遍历它。
目前,只是想看看我是否可以返回文本,例如“澳大利亚”:
Text(Locale.localizedString(Locale.init(identifier: Locale.availableIdentifiers[0].description)))
但是返回错误:
Closure containing control flow statement cannot be used with function builder 'viewbuilder'
谢谢
解决方法
似乎您正在寻找每个标识符的名称。您可以从 NSLocale
获得这些,例如:
Locale.availableIdentifiers.map {
(id: $0,name: (NSLocale.current as NSLocale).displayName(forKey: .languageCode,value: $0) ?? "-")
}
所以你可以随心所欲地提升它们。例如,在列表中显示它们:
struct ContentView: View {
let localeSheet: [(id: String,name: String)] = {
Locale.availableIdentifiers.map {
(id: $0,value: $0) ?? "-")
}.sorted { $0.name < $1.name }
}()
var body: some View {
List(localeSheet,id: \.id) {
Text($0.name)
Spacer()
Text($0.id)
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。