У меня самая странная ситуация с кастомной клавиатурой.
Прежде всего, я настроил фиктивный вид для текстового поля, чтобы скрыть стандартную клавиатуру let dummyView : UIView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
amountField.inputView = dummyView
Затем у меня есть собственная клавиатура, которая анимируется, когда начинается редактирование в текстовом поле.
func textFieldDidBeginEditing(textField: UITextField) {
keyboardContainer.hidden = false
UIView.animateWithDuration(0.6, animations: {
self.keyboardContainer.frame = self.keyboardScreenPosition!
}, completion: {
finished in
if finished {
//just in case
}
})
}
Кроме того, я установил кнопку, которая должна завершить редактирование и скрыть мою пользовательскую клавиатуру.
@IBAction func calculeaza(sender: AnyObject) {
self.amountField.resignFirstResponder()
UIView.animateWithDuration(0.6, animations: {
self.keyboardContainer.frame.origin.y = self.view.bounds.height
}, completion: {
finished in
if finished {
}
})
}
Самая странная часть связана с resignFirstResponder()
. Позвольте мне объяснить: если эта часть не включена, клавиатура отлично скрывается (но текстовое поле продолжает мигать курсором, что не является опцией c).
Если часть отставки включена, клавиатура анимируется сверху до текущей позиции, а затем при повторном нажатии кнопки она скользит вниз, как и предполагалось.
Я действительно озадачен тем, почему это происходит ... Я отладил размеры представления, и высоты в порядке, поэтому он должен скользить с самого начала. Я действительно не понимаю, что происходит.
Любая помощь очень ценится, большое спасибо!
РЕДАКТИРОВАТЬ: еще один странный эффект возникает, если я перемещаю часть отставки (или редактирование суперконца) в закрытии окончания анимации. Клавиатура скользит нормально, затем снова появляется на экране