Il est difficile de faire le menu standard de copie sur l'étiquette. Ou peut-être à ce moment-là j'ai essayé mais n'ai pas réussi. J'ai donc implémenté une solution de copie complète. Je l'ai fait quelque chose comme ci-dessous -
import UIKit
class KGCopyableLabel: UILabel {
override public var canBecomeFirstResponder: Bool {
get {
return true
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
isUserInteractionEnabled = true
addGestureRecognizer(UILongPressGestureRecognizer(
target: self,
action: #selector(showCopyMenu(sender:))
))
}
override func copy(_ sender: Any?) {
UIPasteboard.general.string = text
UIMenuController.shared.setMenuVisible(false, animated: true)
}
func showCopyMenu(sender: Any?) {
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(_:)))
}
}
Vous pouvez alors simple glisser-déposer l'étiquette dans Storyboard et faire du type KGCopyableLabel et il devrait fonctionner
[Cet article] (http: // stephenradford .me/make-uilabel-copyable /) vous aidera –
Merci, cela pourrait fonctionner pour la partie Copie de mon problème. – Brewski