使用UIStepper增加/减少预先填充的UITextField

时间:2015-03-26 13:58:06

标签: ios swift xcode6 uistepper

我研究了与UIStepper相关的其他问题,似乎没有人回答我的具体问题(他们都是在目标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 个答案:

答案 0 :(得分:1)

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