     /// The closure to be called to determine whether the chracters in the text field should change.
     var shouldChangeCharactersClosure: TextFieldChangeCharacters? {
         get {
-            guard let boxedValue = objc_getAssociatedObject(self, AssociatedKeys.textFieldShouldChangeCharactersHandle) as? Box<TextFieldChangeCharacters> else { return nil }
-            return boxedValue.value
-        }
-        set {
+            print("Get: \(self)")
+            print("Get: \(unsafeAddressOf(AssociatedKeys.textFieldShouldChangeCharactersHandle))")
+            print("Get: \(unsafeAddressOf(AssociatedKeys.textFieldDelegateHandle))")
+            print("Get: \(objc_getAssociatedObject(self, &AssociatedKeys.textFieldShouldChangeCharactersHandle))")
+            guard let boxedValue = objc_getAssociatedObject(self, &AssociatedKeys.textFieldShouldChangeCharactersHandle) as? Box<TextFieldChangeCharacters> else { return nil }
+            return boxedValue.value
+        }
+        set {
+            print("Set: \(self)")
+            print("Set: \(unsafeAddressOf(AssociatedKeys.textFieldShouldChangeCharactersHandle))")
             let boxedValue: Box<TextFieldChangeCharacters>? = newValue != nil ? Box(value: newValue!) : nil
-            objc_setAssociatedObject(self, AssociatedKeys.textFieldShouldChangeCharactersHandle, boxedValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            objc_setAssociatedObject(self, &AssociatedKeys.textFieldShouldChangeCharactersHandle, boxedValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            print("Set: \(objc_getAssociatedObject(self, &AssociatedKeys.textFieldShouldChangeCharactersHandle))")
             manageDelegate()
         }
     }

    /// The closure to be called to determine whether the text field should end editing.
    var shouldEndEditingClosure: TextFieldResponse? {
        get {
            guard let boxedValue = objc_getAssociatedObject(self, AssociatedKeys.textFieldShouldEndEditingHandle) as? Box<TextFieldResponse> else { return nil }
            return boxedValue.value
        }
        set {
            let boxedValue: Box<TextFieldResponse>? = newValue != nil ? Box(value: newValue!) : nil
            objc_setAssociatedObject(self, AssociatedKeys.textFieldShouldEndEditingHandle, boxedValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            manageDelegate()
        }
    }

    /// The closure to be called when the text field did begin editing.
    var didBeginEditingClosure: TextFieldAction? {
        get {
            guard let boxedValue = objc_getAssociatedObject(self, &AssociatedKeys.textFieldDidBeginEditingHandle) as? Box<TextFieldAction> else { return nil }
            return boxedValue.value
        }
        set {
            let boxedValue: Box<TextFieldAction>? = newValue != nil ? Box(value: newValue!) : nil
            objc_setAssociatedObject(self, &AssociatedKeys.textFieldDidBeginEditingHandle, boxedValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            manageDelegate()
        }
    }
