В override func viewDidLoad() добавим переменную tapRecognizer которая является экземпляром класса UITapGestureRecognizer() и добавим ей свойство addTarget которое будет применяться к самому объекту с действием didTapView, о которой читайте чуть ниже. И в завершении добавляем для текущего вида обработку тапа, передав ей созданный только что экземпляр класса.
override func viewDidLoad() {
super.viewDidLoad()
let tapRecognizer = UITapGestureRecognizer()
tapRecognizer.addTarget(self, action: «didTapView»)
self.view.addGestureRecognizer(tapRecognizer)
}
Функци
я didTapView будет отписываться от текущего представления, в нашем случае от клавиатуры.
func didTapView(){
self.view.endEditing(true)
}
2. Обрабатываем нажатие кнопки Enter/Return для скрытия клавиатуры:
Первое что нам потребуется, задать функцию
// Функция скрытия клавиатуры для текстового поля
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true;
}
Далее, если у нас несколько полей, то зададим переменную для массива всех полей
var allFields: ArrayUITextField
После чего во viewDidLoad инициализируем наш массив, пусть у нас 4 поля
allFields = [firstName, lastName, email, phone]
и пробежимся по ним в цикле for.
for i in allFields {
i.delegate = self
}
И в завершении вызовем созданную на первом шаге функцию
textFieldShouldReturn(textField: UITextField)
в функции обработки текстового поля для номера телефона. Аналогичным образом ее можно вызвать для всех остальных полей, просто передавая функции аргумент заданного поля.
@IBAction func fPhone(sender: AnyObject) {
ifEmptyGlobal()
checkAl(5, fieldsArray: fields, labelsArray: labels, placeholdersArray: placeholders)
textFieldShouldReturn(phone)
}