@@ -233,7 +233,7 @@ public final class MessageAutocompleteController: MessageTextViewListener {
233233 preserveTypingAttributes ( for: textView)
234234 }
235235
236- public func willChangeRange ( textView: MessageTextView , to range: NSRange ) {
236+ public func willChangeText ( textView: MessageTextView , inRange range: NSRange , to : String ) -> Bool {
237237
238238 // range.length == 1: Remove single character
239239 // range.lowerBound < textView.selectedRange.lowerBound: Ignore trying to delete
@@ -248,6 +248,7 @@ public final class MessageAutocompleteController: MessageTextViewListener {
248248 if let isAutocomplete = attribute [ NSAttributedAutocompleteKey] as? Bool , isAutocomplete {
249249 // Remove the autocompleted substring
250250 let lowerRange = NSRange ( location: 0 , length: range. location + 1 )
251+ var shouldPreserveTypedText = true
251252 textView. attributedText. enumerateAttribute ( NSAttributedAutocompleteKey, in: lowerRange, options: . reverse, using: { ( _, range, stop) in
252253
253254 // Only delete the first found range
@@ -258,9 +259,12 @@ public final class MessageAutocompleteController: MessageTextViewListener {
258259 textView. selectedRange = NSRange ( location: range. location, length: 0 )
259260 self . textView. textViewDidChange ( textView)
260261 self . preserveTypingAttributes ( for: textView)
262+ shouldPreserveTypedText = false
261263 } )
264+ return shouldPreserveTypedText
262265 }
263266 }
267+ return true
264268 }
265269
266270}
0 commit comments