Ответ 1
Переместите его на -viewDidAppear
, и все должно быть хорошо. -becomeFirstResponder
подтягивает клавиатуру (как вы заметили), и вы не должны делать анимацию, прежде чем вы на экране. Вы можете получить странные взаимодействия.
Если он вообще ничего не делает, то почти наверняка productSearchBar
является IBOutlet, и вы забыли привязать его к UISearchBar
в Interface Builder. Это причина №1 "ничего не происходит" в пользовательском интерфейсе.
Обратите внимание, что вам не следует обращаться к вашим иварам таким образом; вы должны сделать это свойством и ссылаться только на self.productSearchBar
. Наконец, Apple опубликовала правильное объяснение этого в "Управление памятью объектов Nib" . Никогда не обращайтесь к своим иварам вне аксессуаров или -dealloc
. Это правило сэкономит вам много часов отладки.