Для iOS5 и выше: теперь UITextField
и UITextView
соответствуют протоколу UITextInput
, поэтому это возможно:)
Выбор последних 5 символов перед кареткой будет выглядеть следующим образом:
//Get current selected range , this example assumes is an insertion point or empty selection
UITextRange *selectedRange = [textField selectedTextRange];
NSLog("Start: %d <> End: %d", selectedRange.start, selectedRange.end);
//Calculate the new position, - for left and + for right
UITextPosition *newPosition = [textField positionFromPosition:selectedRange.start offset:-5];
//Construct a new range using the object that adopts the UITextInput, our textfield
UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:selectedRange.start];