diff --git a/Sources/ChatInputFeature/ChatInputView.swift b/Sources/ChatInputFeature/ChatInputView.swift
index 689d0842691684eb2d874bb424380506fee03dcc..31e5a8ae93cb5f49b64765280130dd89efe87bd1 100644
--- a/Sources/ChatInputFeature/ChatInputView.swift
+++ b/Sources/ChatInputFeature/ChatInputView.swift
@@ -122,7 +122,12 @@ public final class ChatInputView: UIToolbar {
             .map(\.text)
             .sink { [unowned self] in
                 if text.textView.markedTextRange == nil {
+                    let range = text.textView.selectedTextRange
                     text.textView.text = $0
+
+                    if let range = range {
+                        text.textView.selectedTextRange = range
+                    }
                 } else if $0 == "" {
                     text.textView.text = $0
                 }