aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift
diff options
context:
space:
mode:
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift')
-rw-r--r--WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift55
1 files changed, 0 insertions, 55 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift b/WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift
deleted file mode 100644
index 93a9ef7..0000000
--- a/WireGuard/WireGuard/UI/iOS/View/CopyableLabelTableViewCell.swift
+++ /dev/null
@@ -1,55 +0,0 @@
-// SPDX-License-Identifier: MIT
-// Copyright © 2018 WireGuard LLC. All Rights Reserved.
-
-import UIKit
-
-class CopyableLabelTableViewCell: UITableViewCell {
- var copyableGesture = true
-
- var textToCopy: String? {
- fatalError("textToCopy must be implemented by subclass")
- }
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
- super.init(style: style, reuseIdentifier: reuseIdentifier)
- let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture(_:)))
- addGestureRecognizer(gestureRecognizer)
- isUserInteractionEnabled = true
- }
-
- // MARK: - UIGestureRecognizer
- @objc func handleTapGesture(_ recognizer: UIGestureRecognizer) {
- if !copyableGesture {
- return
- }
- guard recognizer.state == .recognized else { return }
-
- if let recognizerView = recognizer.view,
- let recognizerSuperView = recognizerView.superview, recognizerView.becomeFirstResponder() {
- let menuController = UIMenuController.shared
- menuController.setTargetRect(detailTextLabel?.frame ?? recognizerView.frame, in: detailTextLabel?.superview ?? recognizerSuperView)
- menuController.setMenuVisible(true, animated: true)
- }
- }
-
- override var canBecomeFirstResponder: Bool {
- return true
- }
-
- override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
- return (action == #selector(UIResponderStandardEditActions.copy(_:)))
- }
-
- override func copy(_ sender: Any?) {
- UIPasteboard.general.string = textToCopy
- }
-
- override func prepareForReuse() {
- super.prepareForReuse()
- copyableGesture = true
- }
-}