         return shouldBegin
     }
 
-    /**
-     In order for some property changes to take effect on UITextView you must resignFirstResponder
-     and then becomeFirstResponder. This method calls these methods back to back respectively.
-     */
-    private func refreshTextView() {
-        let selectedRange = view?.selectedTextRange
-        view?.resignFirstResponder()
-        view?.becomeFirstResponder()
-        view?.selectedTextRange = selectedRange
-    }
-
     func textChanged() {
         guard let text = view?.m_text else { return }
 


    public var m_textColor: UIColor {
        return textColor!
    }

    public var m_autoCorrectionType: UITextAutocorrectionType {
        get {
            return autocorrectionType
        }
        set {
            autocorrectionType = newValue
        }
    }

    public var m_typingAttributes: [String : AnyObject]? {

}

public protocol ComposableAttributedTextContainingView: AttributedTextContainingView, UITextInputTraits, UITextInput {
    var m_typingAttributes: [String : AnyObject]? { get set }
}

