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

    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")
    }
    
    /**

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