     }
 }
 
-extension FeedTextView: UITextViewDelegate {
-
-    func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
-
-        guard let detectionTypeName = self.attributedText.attribute(ChatTextView.detectionTypeName, atIndex: characterRange.location, effectiveRange: nil) as? String, detectionType = DetectionType(rawValue: detectionTypeName) else {
-            return true
-        }
-
-        let text = (self.text as NSString).substringWithRange(characterRange)
-
-        self.hangleTapText(text, withDetectionType: detectionType)
-
-        return true
-    }
-
-    private func hangleTapText(text: String, withDetectionType detectionType: DetectionType) {
-
-        println("hangleTapText: \(text), \(detectionType)")
-
-        let username = text.substringFromIndex(text.startIndex.advancedBy(1))
-
-        if !username.isEmpty {
-            tapMentionAction?(username: username)
-        }
-    }
-}

        super.addGestureRecognizer(gestureRecognizer)
    }

    enum DetectionType: String {
        case Mention
    }

    var tapMentionAction: ((username: String) -> Void)?

    override func didMoveToSuperview() {
        super.didMoveToSuperview()

        self.delegate = self

        editable = false
    }

    override var text: String! {
        didSet {
            let attributedString = NSMutableAttributedString(string: text)

            mentionExpression.enumerateMatchesInString(text, options: NSMatchingOptions(), range: textRange, usingBlock: { result, flags, stop in

                if let result = result {

                    let textAttributes: [String: AnyObject] = [
                        NSForegroundColorAttributeName: UIColor.redColor(),
                    ]

                    attributedString.addAttributes(textAttributes, range: result.range )
