Я хочу получить размер клавиатуры без использования доступных уведомлений клавиатуры. Причина в том, что у меня есть несколько текстовых полей в представлении, и мне не нужно изменять размер для всех из них, как я видел почти в каждом примере. Мне просто нужно изменить размер представления для некоторых текстовых полей/представлений, которые будут позади клавиатуры при редактировании. Поэтому я использую textFieldDidBeginEditing
и
textFieldDidEndEditing
, потому что здесь я знаю, какое текстовое поле редактируется. Другая проблема заключается в том, что даже если я подписываюсь на уведомления о клавиатуре, UIKeyboardWillShowNotification
запускается после textFieldDidBeginEditing
, поэтому я не могу получить размер клавиатуры при первой активации. Я предполагаю, что никакая информация не предоставляется от функций уведомления клавиатуры, где фактическое текстовое поле или представление недоступны.
The following code works but I need the keyboard size:
- (void) textFieldDidBeginEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, -216);
[UIView commitAnimations];
}
}
- (void) textFieldDidEndEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, +216);
[UIView commitAnimations];
}
}