Прямо сейчас у меня есть функция, которая сдвигает весь экран вверх, если нижнее текстовое поле сливает в противном случае, если верхнее текстовое поле постучало, то я не сдвигать экран:UITapGestureRecognizer штатов не работает
func keyboardWillShow(notification: NSNotification) {
var tapTopTextField: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: nil)
topTextField.addGestureRecognizer(tapTopTextField)
topTextField.userInteractionEnabled = true
if(tapTopTextField.state == .Began) {
// don't move screen
}
// then it is the bottomTextField that is tapped
else {
self.view.frame.origin.y -= getKeyboardHeight(notification)
}
}
Итак, с этим кодом мой экран по-прежнему сдвигается, если topTextField задействован, а другой способ сделать его не изменен - это позволить состоянию .Possible
, но при этом отключается экран, перемещающийся при нажатии на bottomTextField. Есть ли что-то, чего я здесь не хватает, а также есть более элегантный способ сделать это?
Обновление: Итак, я понял, что причина, что это происходит потому, что, когда эта функция называется TextField уже выбран и, следовательно, сбрасывается в .Possible состояние