我目前在标签上遇到问题,无法自动读取3个文本字段值,而没有按钮功能操作。因此我只希望我的textfield只是一个Int输入。下面附有截图,以便更好地参考。感谢那些可以帮助我的人。谢谢!
的ViewController
import UIKit
class TryingoutController: UIViewController {
@IBOutlet var impact: UITextField!
@IBOutlet var rigour: UITextField!
@IBOutlet var response: UITextField!
@IBOutlet var total: UILabel!
答案 0 :(得分:4)
一种方法是将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 {
}
并根据Thuggish Nuggets的this answer实施shouldChange
。然后,将文本字段的delegate
设置为self
:
impact.delegate = self
// do the same for other text fields.