Getting cursor position in a UITextView on the iPhone?

user74686 picture user74686 · Mar 6, 2009 · Viewed 26.4k times · Source

We have a UITextView in our iPhone app which is editable. We need to insert some text at the cursor location when the users presses some toolbar buttons but can't seem to find a documented (or undocumented) method of finding the current location of the cursor.

Does anybody have any ideas or has anybody else achieved anything similar?

Answer

jpedroso picture jpedroso · Mar 6, 2009

Like drewh said, you can use UITextView's selectedRange to return the insertion point. The length of this range is always zero. The example below shows how to it.

NSString *contentsToAdd = @"some string";
NSRange cursorPosition = [tf selectedRange];
NSMutableString *tfContent = [[NSMutableString alloc] initWithString:[tf text]];
[tfContent insertString:contentsToAdd atIndex:cursorPosition.location];
[theTextField setText:tfContent];
[tfContent release];