You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
//
|
|
// CopyableLabel.swift
|
|
// GME Remit
|
|
//
|
|
// Created by InKwon Devik Kim on 05/07/2019.
|
|
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class CopyableLabel: UILabel {
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
internalInit()
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
super.init(coder: aDecoder)
|
|
internalInit()
|
|
}
|
|
|
|
private func internalInit() {
|
|
isUserInteractionEnabled = true
|
|
addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(setMenu(_:))))
|
|
}
|
|
|
|
override var canBecomeFirstResponder: Bool {
|
|
return true
|
|
}
|
|
|
|
override func copy(_ sender: Any?) {
|
|
let board = UIPasteboard.general
|
|
board.string = text
|
|
}
|
|
|
|
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
|
|
return action == #selector(copy(_:))
|
|
}
|
|
|
|
@objc private func setMenu(_ sender: AnyObject) {
|
|
becomeFirstResponder()
|
|
let menu = UIMenuController.shared
|
|
if !menu.isMenuVisible {
|
|
menu.setTargetRect(bounds, in: self)
|
|
menu.setMenuVisible(true, animated: true)
|
|
}
|
|
}
|
|
|
|
}
|