     
     override public func willMoveToSuperview(newSuperview: UIView!) {
         if newSuperview != nil {
-            NSNotificationCenter.defaultCenter().addObserver(self, selector: "textFieldDidEndEditing", name:UITextFieldTextDidEndEditingNotification, object: self)
+            NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TextFieldEffects.textFieldDidEndEditing), name:UITextFieldTextDidEndEditingNotification, object: self)
             
-            NSNotificationCenter.defaultCenter().addObserver(self, selector: "textFieldDidBeginEditing", name:UITextFieldTextDidBeginEditingNotification, object: self)
+            NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TextFieldEffects.textFieldDidBeginEditing), name:UITextFieldTextDidBeginEditingNotification, object: self)
         } else {
             NSNotificationCenter.defaultCenter().removeObserver(self)
         }

    Creates all the animations that are used to leave the textfield in the "entering text" state.
    */
    public func animateViewsForTextEntry() {
        fatalError("\(__FUNCTION__) must be overridden")
    }
    
    /**
    Creates all the animations that are used to leave the textfield in the "display input text" state.
    */
    public func animateViewsForTextDisplay() {
        fatalError("\(__FUNCTION__) must be overridden")
    }
    
    /**

    - parameter rect:	The portion of the view’s bounds that needs to be updated.
    */
    public func drawViewsForRect(rect: CGRect) {
        fatalError("\(#function) must be overridden")
    }
    
    public func updateViewsForBoundsChange(bounds: CGRect) {
        fatalError("\(#function) must be overridden")
    }
    
    // MARK: - Overrides
