Нажатие клавиши табуляции => переход к следующему текстовому полю относительно иерархии текстовых полей в представлении.
Когда вы нажимаете tab - текстовые поля должны вызываться столько раз, сколько текстовых полей, то есть 5 текстовых полей => нажатие одной клавиши табуляции, все 5 экземпляров будут вызваны.
Когда вы нажимаете tab - textfielddidbeginediting будет вызываться только один раз относительно экземпляра нового текстового поля. Следовательно, лучше использовать любую логику для текстового поля в методе делегата textfielddidbeginediting.
Это характеристики по умолчанию для методов делегата, а не проблема.