How to set the position of the cursor in UITextView

GURU picture GURU · Jan 17, 2012 · Viewed 35.6k times · Source

I have an UITextView in my iPhone app which is editable.

New button is created inside the UITextView whenever user select a specific function.

As the button is always placed on the left side in the text view, I need to position the cursor on the right side of the button so that user can see what they are typing. I can't seem to find a documented (or undocumented) method to set location of the cursor.

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

Answer

Cashew picture Cashew · Sep 3, 2012

I know this is VERY late, but I thought I could help people stuck in this (like me).

The performSelector:withObject:afterDelay seems to work fine (the other answers just wouldn't work for some strange reason):

- (void)textViewDidBeginEditing:(UITextView *)inView 
{ 
[self performSelector:@selector(setCursorToBeginning:) withObject:inView afterDelay:0.01]; 
} 

- (void)setCursorToBeginning:(UITextView *)inView 
{ 
//you can change first parameter in NSMakeRange to wherever you want the cursor to move
inView.selectedRange = NSMakeRange(3, 0); 
} 

source: http://puppenspieler.tumblr.com/post/757819650/set-selectedrange-in-a-uitextview