mirror of https://github.com/oxen-io/session-ios
3 changed files with 66 additions and 5 deletions
@ -0,0 +1,49 @@
|
||||
// |
||||
// SRCopyableLabel.swift |
||||
// |
||||
// Created by Stephen Radford on 08/09/2015. |
||||
// Copyright (c) 2015 Cocoon Development Ltd. All rights reserved. |
||||
// |
||||
|
||||
import UIKit |
||||
|
||||
@objc class SRCopyableLabel : UILabel { |
||||
|
||||
override public var canBecomeFirstResponder: Bool { return true } |
||||
|
||||
override init(frame: CGRect) { |
||||
super.init(frame: frame) |
||||
initialize() |
||||
} |
||||
|
||||
required init?(coder aDecoder: NSCoder) { |
||||
super.init(coder: aDecoder) |
||||
initialize() |
||||
} |
||||
|
||||
private func initialize() { |
||||
isUserInteractionEnabled = true |
||||
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?) { |
||||
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(_:))) |
||||
} |
||||
} |
Loading…
Reference in new issue