diff --git a/Controller/MessageListViewController.swift b/Controller/MessageListViewController.swift index f9985c2..fa87f66 100644 --- a/Controller/MessageListViewController.swift +++ b/Controller/MessageListViewController.swift @@ -13,6 +13,7 @@ import RxCocoa import RxDataSources import RxSwift import UIKit +import UniformTypeIdentifiers class MessageListViewController: BaseViewController { lazy var deleteButton: UIBarButtonItem = { @@ -294,13 +295,22 @@ class MessageListViewController: BaseViewController { self.navigationController?.present(alertController, animated: true, completion: nil) } - private func alertMessage(message: MessageItemModel, sourceView: UIView, sourceCell: UITableViewCell) { + private func alertMessage(message: MessageItemModel, sourceView: MessageItemView, sourceCell: UITableViewCell) { let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) // 复制 alertController.addAction(UIAlertAction(title: NSLocalizedString("Copy2"), style: .default, handler: { [weak self] (_: UIAlertAction) in - UIPasteboard.general.string = message.attributedText?.string + if #available(iOS 14.0, *) { + var items = [[String: Any]]() + items.append([UTType.utf8PlainText.identifier: message.attributedText?.string ?? ""]) + if let image = sourceView.imageView.image { + items.append([UTType.image.identifier: image]) + } + UIPasteboard.general.items = items + } else { + UIPasteboard.general.string = message.attributedText?.string ?? "" + } self?.showSnackbar(text: NSLocalizedString("Copy")) })) // 删除 diff --git a/View/MessageList/MessageItemView.swift b/View/MessageList/MessageItemView.swift index 10a9f98..b9493a3 100644 --- a/View/MessageList/MessageItemView.swift +++ b/View/MessageList/MessageItemView.swift @@ -88,7 +88,7 @@ class MessageItemView: UIView { } } - var tapAction: ((_ message: MessageItemModel, _ sourceView: UIView) -> Void)? + var tapAction: ((_ message: MessageItemModel, _ sourceView: MessageItemView) -> Void)? /// 用于查找通知扩展缓存的图片 lazy var imageCache: ImageCache = { diff --git a/View/MessageList/MessageTableViewCell.swift b/View/MessageList/MessageTableViewCell.swift index 921809c..950121d 100644 --- a/View/MessageList/MessageTableViewCell.swift +++ b/View/MessageList/MessageTableViewCell.swift @@ -23,7 +23,7 @@ class MessageTableViewCell: UITableViewCell { } } - var tapAction: ((_ message: MessageItemModel, _ sourceView: UIView) -> Void)? { + var tapAction: ((_ message: MessageItemModel, _ sourceView: MessageItemView) -> Void)? { didSet { messageView.tapAction = tapAction } @@ -143,7 +143,7 @@ class MessageGroupTableViewCell: UITableViewCell { } } - var tapAction: ((_ message: MessageItemModel, _ sourceView: UIView) -> Void)? = nil + var tapAction: ((_ message: MessageItemModel, _ sourceView: MessageItemView) -> Void)? = nil /// 查看群组所有消息 var showGroupMessageAction: ((_ group: String?) -> Void)? = nil