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

Ios 不单击按钮的三个文本字段值之和(Swift-Xcode),ios,swift,Ios,Swift,目前,我的标签无法在没有按钮功能操作的情况下自动读取添加的3个文本字段值。因此,我只希望我的文本字段仅为Int输入。下面附有一个屏幕截图,以便更好地参考。感谢那些能帮我的人。谢谢 视图控制器 import UIKit class TryingoutController: UIViewController { @IBOutlet var impact: UITextField! @IBOutlet var rigour: UITextField! @IBOutlet va

目前,我的标签无法在没有按钮功能操作的情况下自动读取添加的3个文本字段值。因此,我只希望我的文本字段仅为Int输入。下面附有一个屏幕截图,以便更好地参考。感谢那些能帮我的人。谢谢

视图控制器

import UIKit

class TryingoutController: UIViewController {
    @IBOutlet var impact: UITextField!
    @IBOutlet var rigour: UITextField!
    @IBOutlet var response: UITextField!
    @IBOutlet var total: UILabel!

一种方法是将
self
作为控制事件
的目标添加到文本字段中。editingChanged

impact.addTarget(self, action: #selector(textChanged), for: .editingChanged)
// do the same for other textfields 
然后声明一个
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)
    )
}
或者,您可以遵循
UITextFieldDelegate

class TryingoutController: UIViewController, UITextFieldDelegate {

}
并实施
应根据暴徒的行为改变
。然后,将文本字段的
委托设置为
self

impact.delegate = self
// do the same for other text fields.

response.text??“0”
这有帮助吗?如果实现了
shouldChange
delegate以将字符集限制为数字,也可能会有所帮助。您可以使用此答案执行此操作-@Skywalker谢谢,添加了指向该答案的链接。谢谢,它成功了!但最后一件事,我如何验证我的“影响”文本字段?因此,用户只能从1-80?@Kinja输入,您必须使用if语句来检查输入是否在范围内。如果其中任何一个超出范围,则使用标签输出适当的消息。