Другой способ сделать это прост:
Делает ваш UIView as UIControl in custom class in the interface builder
, затем вы можете прикрепить метод IBAction
в Touch up inside event
вашего UIView : UIControl
, затем вы помещаете [yourTextField resignFirstResponder]
внутри IBAction method
, вот так:
- (IBAction) hideKeyboard: (id) sender
{
// If you have more than one textfield to dismiss, of course only can be active 1, but here you can't know who is it, because sender will be the UIView : UIControl
[alias resignFirstResponder];
[password resignFirstResponder];
}
Затем, у вас есть другой вариант, и он должен вставить в текстовое поле the return key of the keyboard as Done
(Это может быть любой из тех, что вы хотите, но Готово, это хорошо для этого, потому что возвратозначает выполнить действие с формой) в конструкторе интерфейса, чтобы вы могли нажать Done
и скрыть клавиатуру, но в этом случае вам необходимо присоединить предыдущий метод IBAction к событию Did end on exit
.
И таким образом клавиатура будет скрывать touching outside
или касаться Done
с клавиатуры.
Если вы хотите улучшить код, если только будете скрывать клавиатуру, касающуюся Done
от клавиатуры, методдолжно быть:
// Attach all textFields here on Did end on exit event, will not work if touch outside the keyboard
- (IBAction) hideKeyboard: (id) sender
{
[sender resignFirstResponder];
}