Как заменить несколько символов текста UITextView в реальном времени на Swift? - PullRequest
0 голосов
/ 11 июня 2019

Вот мои коды:

func textViewDidChange(_ textView: UITextView) {
        if let newCharacters = newTextView.text?.enumerated() {
            for (index, item) in newCharacters {
                switch item {
                    case “1”:
                        newText.text = newTextView.text?.replacingOccurrences(of: “1”, with: “1⃣️”)
                    case “2”:
                        newText.text = newTextView.text?.replacingOccurrences(of: “2”, with: “2⃣️”)
                    case “3”:
                        newText.text = newTextView.text?.replacingOccurrences(of: “3”, with: “3⃣️”)
                default: break
                }
            }
        }
    }

Вот как это выглядит:

enter image description here

Но я бы хотел заменить все символы UITextView в реальном времени, а не только последний символ текста. Будем благодарны за любые идеи или предложения.

1 Ответ

2 голосов
/ 11 июня 2019

Ошибка возникает из-за того, что, заменяя последний символ своим эмодзи, вы возвращаете предыдущий текст в текстовое представление.

Создайте переменную, в которой вы храните числа смайликов, и в конце замените текстваше текстовое представление с текстом вашей переменной.

   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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...