不单击按钮的三个文本字段值的总和(Swift - Xcode)

Kin*_*nja 4 ios swift

我目前在标签无法自动读取 3 个文本字段值的添加时遇到问题,而无需按钮功能操作。因此,我只希望我的文本字段是一个 Int 输入。下面附上一个屏幕截图,以供更好地参考。感谢那些能帮助我解决这个问题的人。谢谢!

视图控制器

import UIKit

class TryingoutController: UIViewController {
    @IBOutlet var impact: UITextField!
    @IBOutlet var rigour: UITextField!
    @IBOutlet var response: UITextField!
    @IBOutlet var total: UILabel!
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Swe*_*per 5

一种方法是self作为目标添加到文本字段中,用于控制事件.editingChanged

impact.addTarget(self, action: #selector(textChanged), for: .editingChanged)
// do the same for other textfields 
Run Code Online (Sandbox Code Playgroud)

然后声明一个textChanged方法。这应该处理文本字段中的文本更改时发生的情况。一种实现是将文本字段中的所有值(如果有,并且有效)相加并将其显示在标签中。

func textChanged() {
    let impactValue = Int(impact.text!)
    let rigourValue = Int(rigour.text!)
    let responseValue = Int(response.text!)
    total.text = String(describing: 
        (impactValue ?? 0) + (rigourValue ?? 0) + (responseValue ?? 0)
    )
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以符合UITextFieldDelegate

class TryingoutController: UIViewController, UITextFieldDelegate {

}
Run Code Online (Sandbox Code Playgroud)

shouldChange根据Thuggish Nuggets 的答案实施。然后,将delegate文本字段的s设置为self

impact.delegate = self
// do the same for other text fields.
Run Code Online (Sandbox Code Playgroud)