         return pickerInputRow?.displayValueFor?(pickerInputRow?.options[row])
     }
     
-    open func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
+    open func pickerView(_ pickerView: UIPickerView, didSelectRow rowNumber: Int, inComponent component: Int) {
         if let picker = pickerInputRow, !picker.options.isEmpty {
-            picker.value = picker.options[row]
+            picker.value = picker.options[rowNumber]
             if picker.value != nil {
-                textField.text = "\(picker.value!)"
+                row.value = picker.value
+                targetLabel?.text = "\(picker.value!)"
             }
         }
     }


import Foundation

class PickerInputTextField: UITextField {
    override func caretRect(for position: UITextPosition) -> CGRect {
        return CGRect.zero
    }
}

//MARK: PickerInputCell

open class PickerInputCell<T> : _FieldCell<T>, CellType, UIPickerViewDataSource, UIPickerViewDelegate where T: InputTypeInitiable, T: Equatable {
    
    public var picker: UIPickerView
    

    }
    
    open override func update(){
        if row.title != nil && row.title != "" {
            // Due to the super function's operations on the labels, we should only call it if there is a title
            super.update()
            targetLabel = detailTextLabel!
        } else {
            targetLabel = textLabel!
        }
        
        selectionStyle = .none
        
        targetLabel?.text = row.value != nil ? "\(row.value!)" : ""
        if row.isHighlighted {
            textFieldStartColor = targetLabel?.textColor
            targetLabel?.textColor = tintColor
        } else if textFieldStartColor != nil {
            targetLabel?.textColor = textFieldStartColor
            if targetLabel == textLabel {
                detailTextLabel?.text = nil
            }
        }
        
        picker.reloadAllComponents()
        if let selectedValue = pickerInputRow?.value, let index = pickerInputRow?.options.index(of: selectedValue){
            picker.selectRow(index, inComponent: 0, animated: true)
        }
        
    }
    
    open override var inputView: UIView? {
        return picker
    }
    
    open override func cellCanBecomeFirstResponder() -> Bool {
        return canBecomeFirstResponder
    }
    
    override open var canBecomeFirstResponder: Bool {
        get {
            return !row.isDisabled
        }
    }
    
    open func numberOfComponents(in pickerView: UIPickerView) -> Int {
