Ошибка возникает из-за того, что, заменяя последний символ своим эмодзи, вы возвращаете предыдущий текст в текстовое представление.
Создайте переменную, в которой вы храните числа смайликов, и в конце замените текстваше текстовое представление с текстом вашей переменной.
func textViewDidChange(_ textView: UITextView) {
if let newCharacters = newTextView.text?.enumerated() {
var newText = newTextView.text
for (index, item) in newCharacters {
switch item {
case “1”:
newText?.replacingOccurrences(of: “1”, with: “1⃣️”)
case “2”:
newText?.replacingOccurrences(of: “2”, with: “2⃣️”)
case “3”:
newText?.replacingOccurrences(of: “3”, with: “3⃣️”)
default: break
}
}
newTextView.text = newText
}
}