Comment obtenir UIKeyboard taille avec iOS
Est-il un moyen d'obtenir UIKeyboard taille de la programmation. 216.0 f hauteur et 162.0 f hauteur dans le paysage.
Suivantes semblent être obsolète. Est-il un moyen qui fonctionne sans aucun avertissement dans les deux iPhone OS 3.0 SDK et 4.0 de l'iPhone OS SDK pour ce faire..
CGSize keyBoardSize = [[[note userInfo]
objectForKey:UIKeyboardBoundsUserInfoKey] CGRectValue].size;
- En 2011, Apple a enfin une bonne introduction au sujet de gestion du clavier et de la taille: developer.apple.com/library/ios/#documentation/StringsTextFonts/....
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir le clavier de la taille de la
userInfo
dictionnaire à l'aide de la UIKeyboardFrameBeginUserInfoKey et la UIKeyboardFrameEndUserInfoKey à la place.Ces deux touches retour d'un
NSValue
instance contenant unCGRect
qui détient la position et la taille du clavier à la fois le début et la fin de la clavier afficher/masquer de l'animation.Edit:
De préciser, les
userInfo
dictionnaire vient d'un NSNotification instance. Il est transmis à la méthode que vous vous inscrivez avec un observateur. Par exemple,Edit 2:
Aussi, s'il vous plaît n'oubliez pas de retirer vous-même en tant qu'observateur dans votre
dealloc
méthode! C'est pour éviter un plantage qui pouvait se produire lors de la notification center tente de le notifier à votre objet après sa libération.-userInfo
sur l'obtenir?keyboardFrameBeginRect
peut avoir différentes origines et les valeurs de la taille de ce que vous attendez si, par exemple, l'appareil est en mode paysage. Pour résoudre ce problème, il suffit de convertir le retour de l'rect de coordonnées appropriées. En supposant que l'observateur est un view controller, ajouter une ligne de code comme ceci:CGRect keyboardFrameFixed = [self.view convertRect:keyboardFrameBeginRect fromView:self.view.window];
Maintenant,keyboardFrameFixed
aura valeurs attendues n'importe dispositif d'orientation. Ceci est utile si vous voulez savoir, par exemple, le clavier, la hauteur de déplacer des objets sur l'écran en conséquence.ARC
nous n'avons pas- (void) dealloc
méthode, de sorte que vous pouvez supprimer l'observateur dansviewWillDisappear
méthode.Vous devez utiliser le
UIKeyboardWillChangeFrameNotification
au lieu de cela, parce que certains claviers internationaux, comme les Chinois, clavier, va changer les cadres, lors de l'utilisation. Assurez-vous également de convertir lesCGRect
dans la vue appropriée pour le paysage de l'utiliser.[self.view convertRect:keyboardRect fromView:nil]
sur iOS 8 que j'ai été sur iOS 7...UIKeyboardFrameEndUserInfoKey
! J'avais en quelque sorte obtenu à l'aide deUIKeyboardFrameBeginUserInfoKey
, qui est en fait la taille du clavier avant la redimensionner et je me demandais pourquoi tout a foiré!Voici comment j'ai finalement fait les œuvres. J'ai combiné des suggestions et des codes de réponses différentes.
Caractéristiques: rejetant clavier, déplacer les champs de texte au-dessus du clavier lors de l'édition et mise en "Suivant" et "Fait" du clavier de type de retour.REMPLACER "..." avec plus de champs
Sur swift 4
et puis: