2015-04-03 21 views
5

我正在阅读有关swift中的设计模式的书籍,并且有一个程序可以在步进器的值更改或与其关联的文本字段改变,这里是法UITextField的值已更改和编辑已更改事件之间的区别是什么

@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(); 
     } 
} 

此外,当我将文本字段的事件从编辑更改为值更改,它只是不工作了!

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

回答

5

编辑更改是textField statu。 值已更改textField内容已更改。

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

这样的:

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

你可以改变控制事件的目标。行动。 谢谢。

1

从苹果公司的UIControl Control Events docs

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

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

相关问题