             cell.valueField.tag = indexPath.row
             cell.valueField.removeTarget(self, action: #selector(didChange(textField:)), for: .allEvents)
             cell.accessoryType = .none
+
+            if !self.isEditable {
+                cell.isUserInteractionEnabled = false
+            }
 
             return cell
         }

            cell.segmentedControl.removeTarget(self, action: #selector(didChange(segmentedControl:)), for: .allEvents)
            cell.segmentedControl.addTarget(self, action: #selector(didChange(segmentedControl:)), for: .valueChanged)
            cell.nameLabelWidth = self.nameLabelWidth

            return cell
        default:

            }
            cell.accessoryType = .none

            if !self.isEditable {
                cell.isUserInteractionEnabled = false
            }

            return cell
        case let boolField as BoolField:
            let cell = tableView.dequeueReusableCell(withIdentifier: BoolFieldTableViewCell.identifier, for: indexPath) as! BoolFieldTableViewCell
