Any attempt to do make the field editable within the current pass through the run loop will fail. What you need to do is to cue the selection up for the next time around the loop. Something like this:
[self performSelector:@selector(selectText:) withObject:textField afterDelay:0];
You might want to do something other than selectText on a textfield, but the technique is what you need.