Вы можете сделать это, используя раскадровку в XCode 6 и выше:
Создать действие, чтобы скрыть клавиатуру
Добавьте это в файл заголовка класса, используемого вашим ViewController:
@interface TimeDelayViewController : UIViewController <UITextFieldDelegate>
- (IBAction)dissmissKeyboardOnTap:(id)sender;
@end
Затем добавьте это в файл реализации того же ViewController:
- (IBAction)dissmissKeyboardOnTap:(id)sender{
[[self view]endEditing:YES];
}
Теперь это будет одно из «полученных действий» для вашей раскадровки (т. Е. ViewController):
Подключить действие к пользовательскому событию
Теперь вам нужно подключить это действие к пользовательскому жесту касания клавиатуры.
Важно. Вам необходимо преобразовать UIView, который содержится в вашей раскадровке, в UIControl , чтобы он мог получать события. Выберите представление в иерархии сцены View Controller:
... и измените его класс:
Теперь перетащите из маленького кружка рядом с «полученным действием» для вашей сцены на «пустую» часть вашей сцены (фактически вы перетаскиваете «Полученное действие» в UIControl). Вам будет показан выбор событий, к которым вы можете подключить свое действие:
Выберите опцию «подправить изнутри». Теперь вы подключили созданный IBAction к пользовательскому действию касания клавиатуры. Когда пользователь нажимает на клавиатуру, она будет скрыта.
(ПРИМЕЧАНИЕ. Чтобы привязать действие к событию, вы также можете перетащить полученное действие непосредственно в UIControl в иерархии View Controllers. В иерархии оно отображается как «Control».)