objective c - UIKeyboardWillShowNotification no llama y solo UIKeyboardWillHideNotification llama en iOS 9
objective-c iphone (1)
Esto puede estar relacionado con la configuración del simulador, consulte el menú "Hardware> Teclado> Conectar hardware del teclado". Si esta opción está activada, obtendrá UIKeyboardWillHideNotification
, pero nunca UIKeyboardWillShowNotification
.
Todo funciona bien hasta iOS 8. Pero cuando el usuario toca el control de campo de texto viene directamente en UIKeyboardWillHide Notificación de notificación Consola de inicio de sesión: no se puede encontrar el plano de teclado compatible con el tipo 4 para el teclado iPhone-PortraitTruffle-NumberPad; utilizando 675849259_PortraitTruffle_iPhone-Simple-Pad_Default
Aquí está el código--
`
In view did load
- (void)viewDidLoad {
[super viewDidLoad];
self.txtMobNumber.delegate = self;
self.txtMobNumber.keyboardType = UIKeyboardTypeNumberPad;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:@"UIKeyboardWillShowNotification" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:@"UIKeyboardWillHideNotification" object:nil];
}
notification callback
- (void)keyboardWillShow:(NSNotification *)notification
{
// Save the height of keyboard and animation duration
NSDictionary *userInfo = [notification userInfo];
CGRect keyboardRect = [userInfo[@"UIKeyboardBoundsUserInfoKey"] CGRectValue];
[UIView beginAnimations:@"moveKeyboard" context:nil];
float height = keyboardRect.size.height-60;
self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y - height, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
// [self setNeedsUpdateConstraints];
}
// Reset the desired height
- (void)keyboardWillHide:(NSNotification *)notification
{
// Reset the desired height (keep the duration)
NSDictionary *userInfo = [notification userInfo];
CGRect keyboardRect = [userInfo[@"UIKeyboardBoundsUserInfoKey"] CGRectValue];
[UIView beginAnimations:@"moveKeyboard" context:nil];
float height = keyboardRect.size.height-60;
self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + height, self.view.frame.size.width, self.view.frame.size.height);
[UIView commitAnimations];
}
`