更改的值与编辑UITextField的更改事件之间的区别是什么

时间:2015-04-03 02:22:38

标签: ios uitextfield

我目前正在阅读一本关于swift中设计模式的书,并且有一个程序,当步进器的值发生变化或与其关联的文本字段发生变化时,方法会得到通知,这里是方法

@IBAction func stockLevelDidChange(sender: AnyObject) {
    println("Method Trigged")
        if var currentCell = sender as? UIView {
            while (true) {
                currentCell = currentCell.superview!;
                if let cell = currentCell as? ProductTableViewCell {
                    if let id = cell.productID? {

                        var newStockLevel:Int?;

                        if let stepper = sender as? UIStepper {
                            newStockLevel = Int(stepper.value);
                        } else if let textfield = sender as? UITextField {
                            if let newValue = textfield.text.toInt()? {
                                newStockLevel = newValue;
                            }
                        }

                        if let level = newStockLevel {
                            products[id].4 = level;
                            cell.stockStepper.value = Double(level);
                            cell.stockField.text = String(level);
                        }
                    }
                    break;
                }
            }
            displayTotalStock();
        }
}

但是当我改变这段代码时我遇到了一些问题,首先当我刚刚剥离出来的时候,它只是没有用。

@IBAction func stockLevelDidChange(sender: AnyObject) {
    println("Method Trigged")
        if var currentCell = sender as? UIView {
                currentCell = currentCell.superview!;
                if let cell = currentCell as? ProductTableViewCell {
                    if let id = cell.productID? {

                        var newStockLevel:Int?;

                        if let stepper = sender as? UIStepper {
                            newStockLevel = Int(stepper.value);
                        } else if let textfield = sender as? UITextField {
                            if let newValue = textfield.text.toInt()? {
                                newStockLevel = newValue;
                            }
                        }

                        if let level = newStockLevel {
                            products[id].4 = level;
                            cell.stockStepper.value = Double(level);
                            cell.stockField.text = String(level);
                        }
                    }
                    break;
            }
            displayTotalStock();
        }
}

而且,当我将文本字段的事件从编辑更改为更改后的值时,它也无法正常工作!!!

任何人都知道那里发生了什么,谢谢

2 个答案:

答案 0 :(得分:5)

编辑更改是textField statu。 Value Changed是textField内容已更改。

如果你想做一些操作,你可以使用

这样:

[textField addTarget:self action:@selector(textFieldAction:) forControlEvents:UIControlEventValueChanged];

您可以更改目标的控制事件。行动。 感谢。

答案 1 :(得分:2)

来自Apple的UIControl Control Events docs

  

UIControlEventValueChanged
  触摸拖动或以其他方式操纵控件,使其发出一系列不同的值。

     

UIControlEventEditingChanged
  触摸在UITextField对象中进行编辑更改。