首页 > 解决方案 > SwiftUI,使用按钮将文本字段内的值相乘

问题描述

我是编码、Swift 和 Xcode 的新手。我正在创建一个应用程序,它将乘以 3 个值(长度、宽度、高度)来计算特定对象的体积。

该应用程序的最终目标是能够计算许多对象的体积并具有一个“总”值,该值将为您累积累加体积。开始我的应用程序我有一个排序的布局,其中包括用户将在其中输入值(长度、宽度、高度)的三个文本字段和一个具有“Total =”的文本。我已经成功地使用以下方法使文本字段接受双打:

TextField("length", value: $length, formatter: NumberFormatter())

我正在使用一个按钮来执行乘法:

Button(action: {self.equation = self.length * self.width * self.thickness})

以及Text值将显示的位置:

Text("Total= \(equation)")

不幸的是,当我运行应用程序时,将值插入每个文本字段并点击按钮“Total=”Text不执行按钮的操作。只是想弄清楚我哪里出错了。

标签: iosbuttonswiftui

解决方案


TextFieldwith formatter 在显式提交之前不会应用输入字符串,因此请尝试以下操作

extension UIApplication {  // just helper extension
    static func endEditing() {
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to:nil, from:nil, for:nil)
    }
}

Button(action: {
    UIApplication.endEditing()    // << here !!
    self.equation = self.length * self.width * self.thickness
})

推荐阅读