2016-11-07 2 views
3

Я пытаюсь получить прямоугольник определенного диапазона (UITextRange). Проблема в том, что код работает нормально с iOS 10, и я получаю диапазон и прямоугольник. К сожалению, с iOS 9 линия:UITextInput возвращает нулевое положение только в 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 
    } 
} 

ответ

0

textView.isSelectable = true

Эта строка необходима в IOS 9 (нет необходимости в ИО 10).