     /// 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 }
+            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)
+            objc_setAssociatedObject(self, &AssociatedKeys.textFieldDidBeginEditingHandle, boxedValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
             manageDelegate()
         }
     }

    //	MARK: Delegate Management
    
    /**
        Manages the fact that we need to be the delegate for this UITextField, but there may be an object that also wants to be the delegate.
    */
    private func manageDelegate() {
        //  if we are not our own delegate we need to set ourselves as such but keep the old delegate for messaging where appropriate
        if let textFieldDelegate = delegate where !(textFieldDelegate is UITextField) {

//	MARK: UITextField Closures Extension

/**
 `UITextField`
 
 This extension to UITextField adds the ability to assign closures to what would usually need to be delegate methods.
 */
public extension UITextField {
    
    //	MARK: Associated Keys Struct
    
    /**
     `AssociatedKeys`
     
     A private struct which holds the keys for retrieving associated values.
     */
    private struct AssociatedKeys {
        /// The handle for retrieving or storing the text field delegate as an associated value.
        static var textFieldDelegateHandle: NSString = "textFieldDelegateHandle"
        
        /// The handle for retrieving or storing the `shouldBeginEditingClosure` as an associated value.
        static var textFieldShouldBeginEditingHandle: NSString = "textFieldShouldBeginEditingHandle"
        /// The handle for retrieving or storing the `shouldEndEditingClosure` as an associated value.
        static var textFieldShouldEndEditingHandle: NSString = "textFieldShouldEndEditingHandle"
        
        /// The handle for retrieving or storing the `didBeginEditingClosure` as an associated value.
        static var textFieldDidBeginEditingHandle: NSString = "textFieldDidBeginEditingHandle"
        /// The handle for retrieving or storing the `didEndEditingClosure` as an associated value.
        static var textFieldDidEndEditingHandle: NSString = "textFieldDidEndEditingHandle"
        
        /// The handle for retrieving or storing the `shouldChangeCharactersClosure` as an associated value.
        static var textFieldShouldChangeCharactersHandle: NSString = "textFieldShouldChangeCharactersHandle"
        
        /// The handle for retrieving or storing the `shouldClearClosure` as an associated value.
        static var textFieldShouldClearHandle: NSString = "textFieldShouldClearHandle"
        /// The handle for retrieving or storing the `shouldReturnClosure` as an associated value.
        static var textFieldShouldReturnHandle: NSString = "textFieldShouldReturnHandle"
    }
    
    //	MARK: Type Aliases
