Как сохранить некоторые тексты недоступными для редактирования, а некоторые редактируемыми в textview swift? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть одно текстовое представление, я хочу, чтобы некоторые тексты не редактировались, а другие - редактируемыми. Для бывших В моем текстовом виде есть текст «Меня зовут: Санде sh Сардар». поэтому мое имя должно быть недоступно для редактирования, а другой текст должен редактироваться. Есть ли способ сделать это в Swift 5?

Возможно ли это с помощью textrange. значит, если у меня большой не редактируемый текст? Также есть ли лучший способ, если у меня есть несколько таких textview?

ИЛИ как мы можем остановить редактирование после определенного диапазона в текстовом просмотре?

1 Ответ

0 голосов
/ 22 апреля 2020

Используйте этот кусок кода, чтобы получить свой результат. Это означает, что textView не вернет true при редактировании, если существующий текст будет My name is:. Например, если вы хотите остановиться после того, как пользователь ввел около 30 символов, сделайте проверку внутри, как показано ниже.

extension ViewController: UITextViewDelegate {
    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        if let textViewText = textView.text {
            if textViewText == "My name is:" && text == "" {
                return false
            }

            //For text range
            if let textRange = Range(range, in: textViewText) {
                let updatedText = textViewText.replacingCharacters(in: textRange,
                                                                   with: text)
                return updatedText.count < 30 + 11 //11 characters for *My name is:*
            }
        }
        return true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...