         setup()
     }
     
+    // MARK: - Override Properties
+    
+    open override var canBecomeFirstResponder: Bool {
+        return canCopy
+    }
+    
+    
     // MARK: - Override Methods
+
+    open override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
+        return action == #selector(copy(_:)) && canCopy
+    }
+    
+    open override func copy(_ sender: Any?) {
+        UIPasteboard.general.string = text
+        didCopy(text)
+    }
     
     open override var intrinsicContentSize : CGSize {
         var width = super.intrinsicContentSize.width

    }
}

open class ContextLabel: UILabel, NSLayoutManagerDelegate {
    
    public enum LinkDetectionType {
        case none

        }
    }
    
    public lazy var longPressGestureRecognizer: UILongPressGestureRecognizer = {
        let _recognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressGestureRecognized(_:)))
        _recognizer.delegate = self
        return _recognizer
    }()
    
    // Specifies the space in which to render text
    fileprivate lazy var textContainer: NSTextContainer = {
        let _textContainer = NSTextContainer()
