I have searched through stackoverflow for a similar problem and found recommended solutions that worked for others but none of them worked for me so I'm beginning to suspect that it's something I haven't done properly.
It's very simple. All I want to have is that when the user taps on the uitextfield, the entire text within uitextfield get selected. The user can then proceed to delete it all, tap once and append from that point onwards or start typing to overwrite everything.
I have an action from the uitextfield and here's the snippet.
- (IBAction)didBeginEditDescription:(id)sender
{
NSLog(@"Description began edit.");
[self.txtfield selectall:self];
}
I know the method is called (evident by the NSLog). However, nothing happens and the cursor remains to be at the last position of the text. I have UITextFieldDelegate already so not sure what else I should look at?
FYI, this is being done to Xcode 5.0 and trying to develop for iOS 7.
Is there anything obvious that I'm missing?
I think you want to highlight all the text of selected UITextField
. In that case, first you should identify which UITextField
called that method (-didBeginEditDescription
) and then you can call -selectAll
for that particular UITextField
.
Sample Code :
- (IBAction)didBeginEditDescription:(id)sender
{
NSLog(@"Description began edit.");
UITextField *txtFld = ((UITextField *)sender);
[txtFld selectAll:self];
}
Update :
-selectAll
should work. I already implemented and it is working very well for me. Note that, you have written -selectall
instead of -selectAll
. You can also try like this :
[txtFld setSelectedTextRange:[txtFld textRangeFromPosition:txtFld.beginningOfDocument toPosition:txtFld.endOfDocument]];