Я хочу, чтобы пользователь мог выбрать валюту, которую он хочет добавить в мое приложение. Но с этим кодом:
import SwiftUI
struct ContentView: View {
@State private var amount = 0.0
@State private var currency = "USD"
let currencies = ["PLN", "USD", "EUR", "GBP", "JPY"]
var body: some View {
Form {
Picker("Currency", selection: $currency) {
ForEach(currencies, id: \.self) {
Text($0)
}
}
TextField("Amount", value: $amount, format: .currency(code: currency))
.keyboardType(.decimalPad)
}
}
}
Выбор валюты, сделанный с помощью Picker, не меняет тип валюты в TextField (он всегда остается в долларах США, даже после удаления). Как вставить выбранный код валюты в TextField?
Формат не отслеживается для обновления TextField, вы можете сделать это принудительно, используя id
в зависимости от параметра формата, например
TextField("Amount", value: $amount, format: .currency(code: currency))
.keyboardType(.decimalPad)
.id(currency) // << here !!
Протестировано с Xcode 13.2/iOS 15.2