Picker에서 Text(name).tag(code)쓰면 name 선택시 code값 받아올수있음
화면에서는 name이 보이고 따로 Code를 저장해놔야되는 상황
SwiftUI에서 Picker를 사용하여 언어를 선택하면 해당 언어의 code 값을 저장하는 예제 코드를 아래에 제시합니다.
이 예제에서는 Language 구조체를 사용하고 @State를 활용하여 선택된 언어의 code 값 저장합니다.
struct Language: Hashable {
let code: String
let name: String
}
struct ContentView: View {
@State private var selectedLanguageID: String = "ko"
let languages: [Language] = [
Language(code: "ko", name: "한국어"),
Language(code: "en", name: "영어"),
Language(code: "ja", name: "일본어"),
// ... 다른 언어들 추가
]
var body: some View {
VStack {
Picker("Select Language", selection: $selectedLanguageID) {
ForEach(languages, id: \.self) { language in
Text(language.name).tag(language.code)
}
}
.pickerStyle(MenuPickerStyle())
Text("Selected Language ID: \(selectedLanguageID)")
}
.padding()
}
}
#Preview {
ContentView()
}