func onChangeType()

in Sasquatch/Sasquatch/ViewControllers/Cells/MSCustomPropertyTableViewCell.swift [119:169]


  func onChangeType(_ type: CustomPropertyType) {
    typeTextField.text = type.rawValue
    
    // Reset to default values.
    valueTextField.text = ""
    valueTextField.keyboardType = .default
    valueTextField.tintColor = keyTextField.tintColor
    valueTextField.delegate = nil
    valueTextField.inputView = nil
    valueTextField.inputAccessoryView = nil
    switch type {
    case .Clear:
      valueBottomConstraint.isActive = false
      valueLabel.isHidden = true
      valueTextField.isHidden = true
      boolValue.isHidden = true
    case .String:
      valueBottomConstraint.isActive = true
      valueLabel.isHidden = false
      valueTextField.isHidden = false
      valueTextField.keyboardType = .asciiCapable
      boolValue.isHidden = true
    case .Number:
      valueBottomConstraint.isActive = true
      valueLabel.isHidden = false
      valueTextField.isHidden = false
      valueTextField.keyboardType = .numbersAndPunctuation
      boolValue.isHidden = true
    case .Boolean:
      valueBottomConstraint.isActive = true
      valueLabel.isHidden = false
      valueTextField.isHidden = true
      boolValue.isHidden = false
    case .DateTime:
      valueBottomConstraint.isActive = true
      valueLabel.isHidden = false
      valueTextField.isHidden = false
      valueTextField.tintColor = UIColor.clear
      valueTextField.delegate = self.datePickerView
      boolValue.isHidden = true
      self.datePickerView?.showDatePicker()
    }
    
    // Apply constraints.
    contentView.layoutIfNeeded()
    
    // Animate table.
    let tableView: UITableView? = self.tableView()
    tableView?.beginUpdates()
    tableView?.endUpdates()
  }