   func setupObservers() {
     NSNotificationCenter.defaultCenter().addObserver(self, selector:"textFieldTextDidChange:", name: UITextFieldTextDidChangeNotification, object: nil)
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "fontSizeDidChange:", name: UIContentSizeCategoryDidChangeNotification, object: nil)
+    NSNotificationCenter.defaultCenter().addObserver(self, selector:"textFieldTextDidBeginEditing:", name: UITextFieldTextDidBeginEditingNotification, object: nil)
+    NSNotificationCenter.defaultCenter().addObserver(self, selector:"textFieldTextDidEndEditing:", name: UITextFieldTextDidEndEditingNotification, object: nil)
   }
   
   func setupFloatingLabel() {

      horizontalPadding)
  }
  
  //MARK: TextField Responder
  
  override func becomeFirstResponder() -> Bool {
    super.becomeFirstResponder()
    floatingLabel.textColor = activeTextColorfloatingLabel
    return true
  }
  
  override func resignFirstResponder() -> Bool {
    
    if (hasText()) {
      floatingLabel.textColor = inactiveTextColorfloatingLabel
    }
    super.resignFirstResponder()
    
    return true
  }
  
  //MARK: Observers
  func textFieldTextDidChange(notification : NSNotification) {

    let previousShouldDrawPlaceholderValue = shouldDrawPlaceholder
    
    shouldDrawPlaceholder = !hasText()
    
    // Only redraw if self.shouldDrawPlaceholder value was changed

      }
    }
  }
  //MARK: TextField Editing Observer
  func textFieldTextDidEndEditing(notification : NSNotification) {
    if (hasText()) {
      floatingLabel.textColor = inactiveTextColorfloatingLabel
    }
  }
  
  func textFieldTextDidBeginEditing(notification : NSNotification) {
    floatingLabel.textColor = activeTextColorfloatingLabel
  }
  //MARK: Font Size Change Oberver
  func fontSizeDidChange (notification : NSNotification) {
    applyFonts()
    invalidateIntrinsicContentSize()
