我目前正在阅读一本关于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();
}
}
而且,当我将文本字段的事件从编辑更改为更改后的值时,它也无法正常工作!!!
任何人都知道那里发生了什么,谢谢
答案 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对象中进行编辑更改。