From b7956d61c4ae74a3aee931d0fc11e2f5e782edff Mon Sep 17 00:00:00 2001 From: Jorge Leandro Perez Date: Tue, 11 Apr 2017 11:00:54 -0300 Subject: [PATCH] TextView: Overriding Cut --- Aztec/Classes/TextKit/TextView.swift | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) 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) {