From 6fe36537746d1fe2e239e16a6338912dc2769331 Mon Sep 17 00:00:00 2001 From: Rohit Vishwakarma <84082060+rohitvishwakarma-sf@users.noreply.github.com> Date: Fri, 7 Oct 2022 18:46:57 +0530 Subject: [PATCH] fix: cursor moves to end on pasting content which overflow the max length --- Sources/GrowingTextView/GrowingTextView.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Sources/GrowingTextView/GrowingTextView.swift b/Sources/GrowingTextView/GrowingTextView.swift index 2c41470..ae7a549 100644 --- a/Sources/GrowingTextView/GrowingTextView.swift +++ b/Sources/GrowingTextView/GrowingTextView.swift @@ -187,4 +187,19 @@ open class GrowingTextView: UITextView { setNeedsDisplay() } } + + var lastPos : UITextPosition? + open override func paste(_ sender: Any?) { + lastPos = self.selectedTextRange?.start + super.paste(sender) + DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) { [unowned self] in + if self.text.count == self.maxLength { + var currentPos = self.selectedTextRange?.start + if lastPos == currentPos, let newPos = self.position(from: self.endOfDocument, offset: 0) { + self.selectedTextRange = self.textRange(from: newPos, to: newPos) + } + } + } + } + }