如果我们更改 UITextField 中的文本,如何更新 UIStepper 值?
How to update UIStepper value if we change the text from UITextField?
我想允许用户通过输入体重来输入体重,但也可以使用步进器点击 +/-。
如果他们只使用其中一种方法,效果很好。他们可以使用步进器,价值会增加。但是如果他们手动更改文本然后再次使用步进器,值将不会根据文本更改。相反,它遵循步进值。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var txtWeight: UITextField!
@IBOutlet weak var stpWeight: UIStepper!
@IBAction func stpActWeight(_ sender: Any) {
txtWeight.text = "\(stpWeight.value)"
}
}
我希望如果我将 txtWeight.txt
更改为 50.0,然后从步进器按 +,那么它将是 51.0。目前实际输出的是步进值(如果我点击+3次,那么步进值就是3.0)。
你可以试试
// add these in viewDidLoad
txtWeight.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
和
func textFieldDidChange(_ textField: UITextField) {
self.stpWeight.value = Double(textField.text!) ?? 0.0
}
@IBAction func stpActWeight(_ sender: Any) {
txtWeight.text = "\(stpWeight.value)"
}
我想允许用户通过输入体重来输入体重,但也可以使用步进器点击 +/-。
如果他们只使用其中一种方法,效果很好。他们可以使用步进器,价值会增加。但是如果他们手动更改文本然后再次使用步进器,值将不会根据文本更改。相反,它遵循步进值。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var txtWeight: UITextField!
@IBOutlet weak var stpWeight: UIStepper!
@IBAction func stpActWeight(_ sender: Any) {
txtWeight.text = "\(stpWeight.value)"
}
}
我希望如果我将 txtWeight.txt
更改为 50.0,然后从步进器按 +,那么它将是 51.0。目前实际输出的是步进值(如果我点击+3次,那么步进值就是3.0)。
你可以试试
// add these in viewDidLoad
txtWeight.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
和
func textFieldDidChange(_ textField: UITextField) {
self.stpWeight.value = Double(textField.text!) ?? 0.0
}
@IBAction func stpActWeight(_ sender: Any) {
txtWeight.text = "\(stpWeight.value)"
}