У меня есть ActionSheet с одним текстовым полем. Поскольку это текстовое поле имеет атрибут formatter (), оно не обновляет переменную привязки ежечасно. Если я нажимаю кнопку OK, значение часа по-прежнему равно 0. Если есть еще одно текстовое поле, и я нажимаю на него, а затем нажимаю кнопку OK, значение часа еженедельно. Но у меня есть только одно текстовое поле в этом листе.
Есть ли способ сохранить значение переменной привязки обновленным?
struct AddClientSheet: View {
@EnvironmentObject var store: Store
@Environment(\.presentationMode) var presentationMode
@State private var hourly = 0.0
var body: some View {
Form {
Section(header: Text(“Kunde hinzufügen”).font(.title)) {
TextField(“Stundenrate”, value: $hourly, formatter: currencyFormatter())
}
Divider()
HStack {
Spacer()
Button(action: cancel) {
Text("Abbrechen")
}
Button(action: addClient) {
Text("Hinzufügen")
}
}
}
}
func currencyFormatter() -> NumberFormatter {
let f = NumberFormatter()
f.numberStyle = .currency
return f
}
func addClient() {
if hourly > 0{
//store the data
self.presentationMode.wrappedValue.dismiss()
}
}
func cancel() {
self.presentationMode.wrappedValue.dismiss()
}
}