 
     open override func setValue(_ value: Any, forExpression name: String) throws {
         switch name {
-        case "autocapitalizationType":
-            autocapitalizationType = value as! UITextAutocapitalizationType
-        case "autocorrectionType":
-            autocorrectionType = value as! UITextAutocorrectionType
-        case "spellCheckingType":
-            spellCheckingType = value as! UITextSpellCheckingType
-        case "keyboardType":
-            keyboardType = value as! UIKeyboardType
-        case "keyboardAppearance":
-            keyboardAppearance = value as! UIKeyboardAppearance
-        case "returnKeyType":
-            returnKeyType = value as! UIReturnKeyType
-        case "enablesReturnKeyAutomatically":
-            enablesReturnKeyAutomatically = value as! Bool
-        case "isSecureTextEntry":
-            isSecureTextEntry = value as! Bool
+        case "autocapitalizationType": autocapitalizationType = value as! UITextAutocapitalizationType
+        case "autocorrectionType": autocorrectionType = value as! UITextAutocorrectionType
+        case "spellCheckingType": spellCheckingType = value as! UITextSpellCheckingType
+        case "keyboardType": keyboardType = value as! UIKeyboardType
+        case "keyboardAppearance": keyboardAppearance = value as! UIKeyboardAppearance
+        case "returnKeyType": returnKeyType = value as! UIReturnKeyType
+        case "enablesReturnKeyAutomatically": enablesReturnKeyAutomatically = value as! Bool
+        case "isSecureTextEntry": isSecureTextEntry = value as! Bool
         default:
             try super.setValue(value, forExpression: name)
         }

}

extension UIButton {
    dynamic var title: String {
        set { setTitle(newValue, for: .normal) }
        get { return title(for: .normal) ?? "" }
    }
    dynamic var highlightedTitle: String {
        set { setTitle(newValue, for: .highlighted) }
        get { return title(for: .highlighted) ?? "" }
    }

    open override class var expressionTypes: [String: RuntimeType] {
        var types = super.expressionTypes


    open override func setValue(_ value: Any, forExpression name: String) throws {
        switch name {
        case "autocapitalizationType": autocapitalizationType = value as! UITextAutocapitalizationType
        case "autocorrectionType": autocorrectionType = value as! UITextAutocorrectionType
        case "spellCheckingType": spellCheckingType = value as! UITextSpellCheckingType
        case "keyboardType": keyboardType = value as! UIKeyboardType
        case "keyboardAppearance": keyboardAppearance = value as! UIKeyboardAppearance
        case "returnKeyType": returnKeyType = value as! UIReturnKeyType
        case "enablesReturnKeyAutomatically": enablesReturnKeyAutomatically = value as! Bool
        case "isSecureTextEntry": isSecureTextEntry = value as! Bool
        default:
            try super.setValue(value, forExpression: name)
        }
