2015-04-03 20 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對象中進行編輯更改。

相關問題