I'm struggling with a simple solution I can't find. I want to build a picker which shows the flags and selects the Language code from the other array. There must be a simple solution. so long I helped myself with this ugly onChange crutch.
Any suggestions?
struct LanguageView: View {
@AppStorage ("language")var language: String = "de"
@State private var flag: String = ""
var languages = ["de", "en", "pl"]
var languageFlags = ["", " ", "" ]
var body: some View {
VStack{
HStack{
Picker("", selection: $flag) {
ForEach(languageFlags, id: \.self) {
Text($0)
.font(.caption2)
}
}
.pickerStyle(SegmentedPickerStyle())
}.onChange(of: flag, perform: { value in
if flag == "" {language = "de"}
if flag == " " {language = "en"}
if flag == "" {language = "pl"}
})
}
.environment(\.locale, .init(identifier: language))
}
}