0

我研究了与 UIStepper 相关的其他问题,似乎没有人回答我的具体问题(而且它们都在 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,依此类推。递减功能不起作用。我错过了什么?

4

1 回答 1

2

Your logic is incorrect. Each time the stepper value changes, you just add the stepper's current value to your text field. The stepper's value increments or decrements when you press the + or - buttons. You will need to keep track of the stepper's current value, and then compare it when the value changes to see if it has increased or decreased. Then instead of adding the current value to your text field's value, add or subtract 1.

于 2015-03-26T14:18:17.083 回答