2015-04-03 14 views
5

Tôi hiện đang đọc một cuốn sách về các mẫu thiết kế nhanh chóng và có một chương trình nhận được thông báo khi giá trị của bước thay đổi hoặc trường văn bản được liên kết với nó đã thay đổi, đây là phương phápSự khác nhau giữa giá trị thay đổi và chỉnh sửa sự kiện thay đổi của 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(); 
     } 
} 

nhưng tôi có một số vấn đề khi thay đổi chuỗi mã này, trước tiên khi tôi vừa mới nhìn ra, nó không hoạt động.

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

và cũng có thể, khi tôi thay đổi sự kiện của trường văn bản từ chỉnh sửa thành thay đổi giá trị, nó cũng không hoạt động !!!

bất kỳ ai biết điều gì đang xảy ra ở đó, cảm ơn

Trả lời

5

Thay đổi chỉnh sửa là văn bảnThuộc lệnh. Giá trị được thay đổi là nội dung textField đã thay đổi.

nếu bạn muốn làm một số hoạt động, bạn có thể sử dụng

như vậy:

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

bạn có thể thay đổi sự kiện điều khiển cho mục tiêu của bạn. Hoạt động. Cảm ơn.

1

Từ Apple UIControl Control Events docs:

UIControlEventValueChanged
Một cảm ứng kéo hoặc thao tác điều khiển, làm cho nó phát ra một loạt các giá trị khác nhau.

UIControlEventEditingChanged
Một lần chạm tạo thay đổi chỉnh sửa trong đối tượng UITextField.

Các vấn đề liên quan