mirror of
https://github.com/yggdrasil-network/yggdrasil-ios.git
synced 2025-04-27 21:55:10 +03:00
52 lines
1.4 KiB
Swift
52 lines
1.4 KiB
Swift
//
|
|
// CopyableLabel.swift
|
|
// YggdrasilNetwork
|
|
//
|
|
// Created by Neil Alexander on 26/02/2019.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class CopyableLabel: UILabel {
|
|
override public var canBecomeFirstResponder: Bool {
|
|
get {
|
|
return true
|
|
}
|
|
}
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
self.isUserInteractionEnabled = true
|
|
self.addGestureRecognizer(UILongPressGestureRecognizer(
|
|
target: self,
|
|
action: #selector(showMenu(sender:))
|
|
))
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
super.init(coder: aDecoder)
|
|
self.isUserInteractionEnabled = true
|
|
self.addGestureRecognizer(UILongPressGestureRecognizer(
|
|
target: self,
|
|
action: #selector(showMenu(sender:))
|
|
))
|
|
}
|
|
|
|
override func copy(_ sender: Any?) {
|
|
UIPasteboard.general.string = text
|
|
UIMenuController.shared.setMenuVisible(false, animated: true)
|
|
}
|
|
|
|
@objc func showMenu(sender: Any?) {
|
|
self.becomeFirstResponder()
|
|
let menu = UIMenuController.shared
|
|
if !menu.isMenuVisible {
|
|
menu.setTargetRect(bounds, in: self)
|
|
menu.setMenuVisible(true, animated: true)
|
|
}
|
|
}
|
|
|
|
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
|
|
return (action == #selector(copy(_:)))
|
|
}
|
|
}
|