у меня есть некоторые строки в следующем формате:Найти диапазон строк
Существует ______ Appels
Существует ______ коров и ______ овец
Существует ______ красные цветы, ______ зеленые цветы и ______ желтые цветы
Где ______ представляет редактируемую часть строки.
Эти строки содержатся в UITextView, но я хочу, чтобы поля ______ были доступны для редактирования, а остальные строки - только для чтения.
Я попытался реализовать метод "textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String)"
, чтобы ограничить редактирование в диапазоне, в котором присутствует ______. Но у меня возникают проблемы с вычислением диапазона строк ______.
Я подклассы UITextView, добавил переменную:
var characterWhereEditIsAllowed: Character = "_"
и попытался вычислить диапазон от первого вхождения в «characterWhereEditIsAllowed» до последнего, как так:
guard let editableChracter = editableCharacter else {
return
}
guard let idx = text.characters.indexOf(editableChracter) else {
return
}
editableCharacterStartIndex = text.startIndex.distanceTo(idx)
Я застрял, обнаружив индекс последнего вхождения «_» в тексте textview. Помощь приветствуется.
P.S: Я пробовал использовать метод rangeOfString, но поскольку поля «______» различаются по размеру, я не могу проверить эту «строку» определенной длины.
Как об использовании регулярных выражений, чтобы найти все экземпляры «_» с различными длинами? 'NSRegularExpression' вернет массив диапазонов. – Koen