It seemed like it was my mistake.
I included delegate calls in the user class for textDidBeginEditing: and textDidEndEditing: to support the placeholder text when the user inserts a tab from the field, but I did not call the appropriate superclass methods as well.
After turning on the call [super textDidEndEditing...] and [super textDidBeginEditing...] tab works fine.
source share