UITextRange からNSRangeへ変換
メモ。かなり限定的なお話。
UITextInputとかを経由して得られたUITextRangeオブジェクトを、簡単なNSRange型へ変換して扱いたい場合、こんな感じで変換かければいいのかなあ。
-(NSRange)convertRange:(UITextRange*)range inTextInput:(UITextField*)tf { UITextPosition *start = [range start]; UITextPosition *end = [range end]; NSInteger startOffset = [tf offsetFromPosition:tf.beginningOfDocument toPosition:start]; NSInteger endOffset = [tf offsetFromPosition:tf.beginningOfDocument toPosition:end]; NSRange result = NSMakeRange(startOffset, endOffset - startOffset); return result; }