Я думаю, что нашел ваш ответ. Когда вы добавляете панель поиска с помощью построителя интерфейса, вы можете сделать это двумя способами: «Панель поиска» и «Панель поиска и контроллер отображения поиска».
Я использовал второй, и у меня была та же самая проблема, которую вы описали. Я мог бы только вызвать клавиатуру (используя становлениеFirstResponder) на "viewDidAppear". Но если вы сделаете это, добавив только строку поиска, это сработает. Теперь я могу вызыватьcomeFirstResponder для «viewDidLoad», и клавиатура появляется вместе с самим представлением.
Я имею в виду немного больше работы, но на самом деле не много. Вы должны установить свой контроллер, чтобы быть делегатом панели поиска. Я добавил в список представление результатов и сделал мой контроллер его делегатом и источником данных.