UITextInput возвращает нулевую позицию только в iOS 9

Я пытаюсь получить прямоугольник определенного диапазона (UITextRange). Проблема в том, что код отлично работает с iOS 10 и я получаю диапазон и прямоугольник. К сожалению с iOS 9 линия:

if let rangeStart = textInput.position(from: textInput.beginningOfDocument, offset: location) 

возвращается nil

let location = self.textView.firstRect(for: range)


extension NSRange {
    func toTextRange(textInput:UITextInput) -> UITextRange? {
        if let rangeStart = textInput.position(from: textInput.beginningOfDocument, offset: location),
            let rangeEnd = textInput.position(from: rangeStart, offset: length) {
            return textInput.textRange(from: rangeStart, to: rangeEnd)
        }
        return nil
    }
}

1 ответ

textView.isSelectable = true

Эта строка необходима в iOS 9 (не обязательно в iOS 10).

Другие вопросы по тегам