class UILabelCopy: UILabel {
override init(frame:CGRect) {
super.init(frame: frame);
self.attachTapHandler();
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func awakeFromNib() {
self.awakeFromNib();
self.attachTapHandler();
}
func attachTapHandler(){
self.userInteractionEnabled = true;
let touch : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap));
touch.numberOfTapsRequired = 2;
self.addGestureRecognizer(touch);
}
func handleTap(recognizer:UITapGestureRecognizer){
self.becomeFirstResponder();
let menuC : UIMenuController = UIMenuController();
menuC.setTargetRect(self.frame, inView: self.superview!);
menuC.setMenuVisible(true, animated: true);
}
override func canBecomeFirstResponder() -> Bool {
return true;
}
override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
if action == #selector(NSObject.copy(_:)) {
return true;
}
return false;
}
override func copy(sender : AnyObject?){
let pboard : UIPasteboard = UIPasteboard.generalPasteboard();
pboard.string = self.text;
}
}
在viewController中设置UILabel,可以新建一个UITextFidel ,文字复制里边即可
let labelCopy : UILabelCopy = UILabelCopy(frame: CGRect(x: 400, y: 100, width: 100, height: 100));
labelCopy.backgroundColor = UIColor .yellowColor();
labelCopy.text = "otsfaaaaaaaaaa";
self.view.addSubview(labelCopy);