選択したテキストを編集したり、属性付きの文字列を変更したりできるように、選択した範囲のテキストを UITextView (およびまたは UITextField) から取得しようとしています。選択すると以下のメソッドがトリガーされますが、メソッド内のコードは null 値を返します。
- (void)textViewDidChangeSelection:(UITextView *)textView {
UITextRange *selectedRange = [textField selectedTextRange];
NSLog(@"Start: %@ <> End: %@", selectedRange.start, selectedRange.end);
}