2015-04-03 10 views
5

Ich lese gerade ein Buch über Entwurfsmuster in swift, und es gibt ein Programm, dass eine Methode benachrichtigt wird, wenn ein Stepper-Wert geändert oder ein Textfeld zugeordnet geändert, hier ist das VerfahrenWas ist der Unterschied zwischen dem geänderten Wert und dem geänderten Ereignis von 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(); 
     } 
} 

aber ich habe einige Probleme bei der Änderung des Codes dieses Thema, zuerst, als ich gezupft nur die während aussehen, es funktionierte einfach nicht. Auch

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

und auch, wenn ich das Textfeldes einer Veranstaltung von der Bearbeitung Wert geändert geändert geändert, es funktioniert einfach nicht !!!

jemand weiß, was dort vor sich geht, dank

Antwort

5

Bearbeiten Änderung ist das Textfeld statu. Wert geändert ist TextField Inhalt hat sich geändert.

, wenn Sie eine Operation tun möchten, können Sie

Solche verwenden:

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

Sie können für Ihre Zielsteuerung Ereignis ändern. Aktion. Danke.

1

Von Apple UIControl Control Events docs:

UIControlEventValueChanged
Ein Hauch ziehen oder auf andere Weise eine Steuer manipulieren, so dass es eine Reihe von unterschiedlichen Werten emittieren.

UIControlEventEditingChanged
Eine Berührung, die eine Bearbeitungsänderung in einem UITextField-Objekt vornimmt.

Verwandte Themen