gpt4 book ai didi

ios - 当用户在文本字段中键入时更新输出

转载 作者:行者123 更新时间:2023-11-30 11:23:56 24 4
gpt4 key购买 nike

我有代码对四个文本字段求和并在标签中输出总数。目前,代码在完成编辑后对字段进行求和,即选择另一个文本字段。有没有办法在用户输入时对文本字段求和?

@IBAction func TankFuelChanged(_ sender: Any) {
let leftMainTankQuantityValue = Int(leftMainTankQuantity.text ?? "") ?? 0
let rightMainTankQuantityValue = Int(rightMainTankQuantity.text ?? "") ?? 0
let auxTankQuantityValue = Int(auxTankQuantity.text ?? "") ?? 0
let tailTankQuantityValue = Int(tailTankQuantity.text ?? "") ?? 0

let total = leftMainTankQuantityValue + rightMainTankQuantityValue + auxTankQuantityValue + tailTankQuantityValue

totalFuelLoad.text = "\(total)"

最佳答案

您正在寻找的是文本字段更改时触发的事件。您可以从 Storyboard 中拖动操作,也可以使用与 UIButton 类似的 addTarget 以编程方式添加它们,但需要使用事件 editingChanged。检查以下代码:

var allTextFields: [UITextField] {
return [leftMainTankQuantity, rightMainTankQuantity, auxTankQuantity, tailTankQuantity]
}

override func viewDidLoad() {
super.viewDidLoad()

allTextFields.forEach { $0.addTarget(self, action: #selector(onTextFieldChange), for: .editingChanged) }
}

@objc private func onTextFieldChange() {
updateResult()
}

private func updateResult() {
let strings: [String] = allTextFields.compactMap { $0.text } // Will remove all nil texts
let integers: [Int] = strings.compactMap { Int($0) } // Will remove all non-integer texts
let sum = integers.reduce(0, { $0 + $1 }) // Will compute a sum
print(sum) // TODO: update your result here
}

方法必须标记为 @objc,因为我希望代码旁边有 #selector

关于ios - 当用户在文本字段中键入时更新输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50960846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com