Which may make your animation smoother is not the fact that you are calling becomeFirstResponder
in the main thread, but probably because the animation that starts when your placeholderTextView
first responder is executed in the main thread.
Instead of calling becomeFirstResponder
in your main thread, you should make sure that all animations and user interface updates are done in the main thread, and not in the functions that cause these changes.