la hauteur du keyboard varie en ios8

Suis en utilisant le code ci-dessous pour get la hauteur du keyboard qui varie en IPhone 5s périphérique avec ios8 par rapport à IPhone4s périphérique avec ios7 .En conséquence, mon textfield se déplace très haut quand je tape dessus dans IPhone5s avec ios8 tandis que le même code fonctionne très bien dans IPhone 4s avec ios7.Can quelqu'un guide comment le problème peut être résolu dans les deux versions.

- (void)keyboardWasShown:(NSNotification*)notification { NSDictionary* info = [notification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; float kbHeight; if (([UIApplication sharedApplication].statusBarOrientation== UIDeviceOrientationPortraitUpsideDown)||([UIApplication sharedApplication].statusBarOrientation== UIDeviceOrientationPortrait)) { kbHeight=kbSize.height; } else { kbHeight=kbSize.width; } UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbHeight, 0.0); self.scroll.contentInset = contentInsets; self.scroll.scrollIndicatorInsets = contentInsets; CGRect rect = self.view.frame; rect.size.height -= (kbHeight); if (!CGRectContainsPoint(rect, self.activeField.frame.origin)) { CGPoint scrollPoint = CGPointMake(0.0, self.activeField.frame.origin.y - ((kbHeight) - self.activeField.frame.size.height)); [self.scroll setContentOffset:scrollPoint animated:NO]; } } 

Simplement replace la ligne de votre code

 CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

Avec

 CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; 

Laissez-moi savoir si cela fonctionne

Ce n'est pas un problème, vous obtenez un keyboard de taille différente parce que Predictive est Enable .

La hauteur du keyboard est de 216, ce qui est fixe, mais lorsque Predictive est activé, vous aurez 253 comme hauteur.

entrez la description de l'image ici

Vous devez donc écrire du code pour les deux conditions.

utiliser ce code, peut vous aider

 - (void)keyboardWillShow:(NSNotification*)note { NSDictionary* info = [note userInfo]; CGSize _kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; float kbHeight = _kbSize.width > _kbSize.height ? _kbSize.height : _kbSize.width; } 

Hauteur variable stockée kbHeight du keyboard.