Suppose you code is in an object method, where self.textFieldis the UITextField in question.
You can find the current cursor / selection position with:
NSRange range = self.textField.selectedTextRange;
, range.length 0, , . , KVO, , , , , , .
( , newText ).
[self.textField replaceRange:range withText:newText]
/, :
self.textField.selectedTextRange = newRange;
, .
:
, , UITextView:
- (void)setSelectedRange:(NSRange)selectedRange
{
UITextPosition* from = [self positionFromPosition:self.beginningOfDocument offset:selectedRange.location];
UITextPosition* to = [self positionFromPosition:from offset:selectedRange.length];
self.selectedTextRange = [self textRangeFromPosition:from toPosition:to];
}
- (NSRange)selectedRange
{
UITextRange* range = self.selectedTextRange;
NSInteger location = [self offsetFromPosition:self.beginningOfDocument toPosition:range.start];
NSInteger length = [self offsetFromPosition:range.start toPosition:range.end];
NSAssert(location >= 0, @"Location is valid.");
NSAssert(length >= 0, @"Length is valid.");
return NSMakeRange(location, length);
}
self.textField.selectedRange self.textField.selectedTextRange , .
omz .
, UITextRange, , , .