Извините, что опубликовал это как ответ, а не как комментарий, но, как вы можете видеть, я новичок в Stack Overflow, и поэтому я еще не достаточно авторитетен, чтобы оставлять комментарии!
В любом случае, я второй @cire, чтобы убедиться, что установил статус первого респондента, как только представление является частью иерархии представлений. Так, например, установка статуса первого респондента в вашем контроллере вида viewDidLoad
не будет работать. И если вы не уверены, работает ли он, [view becomeFirstResponder]
возвращает вам логическое значение, которое вы можете проверить.
Еще один момент: вы можете использовать контроллер представления для захвата события встряхивания, если вы не хотите без необходимости создавать подкласс UIView. Я знаю, что это не так уж много хлопот, но все же есть возможность. Просто переместите фрагменты кода, которые Кендалл поместил в подкласс UIView, в свой контроллер и отправьте сообщения becomeFirstResponder
и resignFirstResponder
на self
вместо подкласса UIView.