选择器选择更改 SwiftUI 中的 TextField
Picker choice changing the TextField in SwiftUI
我希望用户能够选择他们想要放入我的应用程序中的货币。但是使用此代码:
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([=10=])
}
}
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
我希望用户能够选择他们想要放入我的应用程序中的货币。但是使用此代码:
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([=10=])
}
}
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