Кажется, что при использовании value:
в качестве ввода SwiftUI не перезагружает представление.
SwiftUI перезагружает представление, используя text:
в качестве ввода при каждом нажатии клавиши.
сделать это, используя подход ниже.
struct ContentView: View {
@State var numeral : String = "0.00"
@State var result: Double = 0.00
var body: some View {
VStack {
TextField("Enrer numeral", text: $numeral)
.keyboardType(.decimalPad)
.padding(20)
.frame(width: 300, height: 100)
.font(.largeTitle)
Text("\(result)")
.font(.largeTitle)
.padding()
Button(action: {
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
if let val = Double(self.numeral) {
self.result = val * 1.2
print(self.numeral)
print(self.result)
}
else {
print("Entered value is invalid")
}
}) {
Image(systemName: "play.fill")
.font(.largeTitle)
.foregroundColor(.red)
}
}
}
}