             setNeedsDisplay()
         }
     }
+    
+    // MARK: - UITextViewDelegate
+
+    func textViewDidChange(textView: UITextView) {
+        updateTextView()
+    }
 
     func textViewDidEndEditing(textView: UITextView) {
         saveChanges()

        super.saveChanges()
    }

    // MARK: - UITextViewDelegate

    func textViewDidChange(textView: UITextView) {
        let heightOffset = textView.contentSize.height - textView.bounds.size.height
        if heightOffset > 0 {
            let origin = frame.origin


        addSubview(textView)
    }
    
    override func handlePanTranslation(translation: CGPoint) -> CGRect {
        let rect = super.handlePanTranslation(translation)
        updateTextView()
        return rect
    }
    
    override func handleDoubleTap(tapGestureRecognizer: UITapGestureRecognizer) {
        textView.becomeFirstResponder()
    }
