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
    }
}

person PoolHallJunkie    schedule 07.11.2016    source источник


Ответы (1)


textView.isSelectable = true

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

person hengyu    schedule 14.01.2017