diff --git a/Aztec/Classes/TextKit/TextView.swift b/Aztec/Classes/TextKit/TextView.swift index 224734726..694807fd9 100644 --- a/Aztec/Classes/TextKit/TextView.swift +++ b/Aztec/Classes/TextKit/TextView.swift @@ -213,13 +213,18 @@ open class TextView: UITextView { // MARK: - Intercept copy paste operations + open override func cut(_ sender: Any?) { + let data = storage.attributedSubstring(from: selectedRange).archivedData() + super.cut(sender) + + storeInPasteboard(encoded: data) + } + open override func copy(_ sender: Any?) { + let data = storage.attributedSubstring(from: selectedRange).archivedData() super.copy(sender) - let data = self.storage.attributedSubstring(from: selectedRange).archivedData() - let pasteboard = UIPasteboard.general - var items = pasteboard.items - items[0][NSAttributedString.pastesboardUTI] = data - pasteboard.items = items + + storeInPasteboard(encoded: data) } open override func paste(_ sender: Any?) { @@ -251,6 +256,14 @@ open class TextView: UITextView { } + // MARK: - Pasteboard Helpers + + private func storeInPasteboard(encoded data: Data) { + let pasteboard = UIPasteboard.general + pasteboard.items[0][NSAttributedString.pastesboardUTI] = data + } + + // MARK: - Intercept keyboard operations open override func insertText(_ text: String) {