使用 UIStepper increment/decrement 预填充 UITextField

Use UIStepper to increment/decrement pre-populated UITextField

我研究了与 UIStepper 相关的其他问题,似乎 none 回答了我的具体问题(它们都在 Objective C 中)。

这是我的代码:

class EditItemViewController: UIViewController {

    @IBOutlet weak var myTextField: UITextField!

    @IBOutlet weak var myStepper: UIStepper!

    @IBAction func stepperChanged(sender: UIStepper) {
        var currentValue = myTextField()!
        let valueFromStepper = Int(sender.value).description
        currentValue += valueFromStepper.toInt()!
        myTextField = currentValue.description
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        myTextField = NSUserDefaults.standardUserDefaults().stringForKey("item")

        myStepper.autorepeat = false

    }

文本字段填充了来自 UserDefaults 的值。用户可以在文本字段中更改它或使用步进器。现在,单击步进器上的 + 可以正确地将 1 添加到文本字段值。但是,再次按下会加 2,然后加 3,依此类推。递减功能不起作用。我错过了什么?

你的逻辑不正确。每次步进器值更改时,您只需将步进器的当前值添加到文本字段即可。当您按下 + 或 - 按钮时,步进器的值会增加或减少。您将需要跟踪步进器的当前值,然后在值发生变化时进行比较以查看它是增加还是减少。然后不是将当前值添加到文本字段的值,而是添加或减去 1。