如果我们更改 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)" 
}