2015-04-03 20 views
5

Obecnie czytam książkę o wzorcach projektowych w swift i istnieje program, w którym metoda zostaje powiadomiona, gdy zmieniona jest wartość kroku lub pole tekstowe z nią powiązane zmieniło, tutaj jest metodaJaka jest różnica między zmienioną wartością a edycją zmienionego zdarzenia 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(); 
     } 
} 

ale mam pewne problemy, gdy zmiana ta nitka kodu, najpierw po prostu usuwane na zewnątrz chwilę spojrzeć, to po prostu nie działa.

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

a także, kiedy zmienił zdarzenie w polu tekstowym z edycji zmieniona na wartość zmieniła, to po prostu nie działają zbyt !!!

ktoś wie, co się tam dzieje, dzięki

Odpowiedz

5

zmiana Montaż jest statu textField. Zmieniono wartość Wartość textField została zmieniona.

jeśli chcesz zrobić kilka operacji, można użyć

TAKI:

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

można zmienić sterowania wydarzenie dla swojego celu. Akcja. Dzięki.

1

Od Apple UIControl Control Events docs:

UIControlEventValueChanged
Dotyk przeciąganie lub w inny sposób manipulowania kontroli, powodując jej emitować serię różnych wartościach.

UIControlEventEditingChanged
Dotknięcie dokonujące zmiany edycji w obiekcie UITextField.

Powiązane problemy