Comment faire pour que l'interface s'adapte bien au clavier ?

J'ai constaté que l'appli Skype (iPad) s'intégrait très bien au clavier.


 


En gros, le champ texte où l'on tape les messages est toujours juste au-dessus du clavier. En particulier, lorsque l'on ajoute la petite zone au-dessus du clavier où l'on voit les propositions de mot, le champ texte suit parfaitement.


 


Réponses

  • AliGatorAliGator Membre, Modérateur
    Bah soit ils utilisent la inputAccessoryView, soit plus probablement (puisque leur champ texte ne fait pas toute la largeur du clavier), ils observent les notifications UIApplicationKeyboardXXX pour savoir quand le keyboard change de frame et sa vitesse d'animation etc, pour adapter la frame et animation de leur champ de texte en conséquence.
  • ça me semble bien compliqué d'observer la vitesse, etc... non ?


     


    Je ne connaissais pas inputAccessoryView. En même temps, même quand le clavier est dismissé, la vue pour saisir du texte est affichée. Donc, je ne sais pas si c'est possible que ce soit une inputAccessoryView.


  • UIKeyboardAnimationDurationUserInfoKey est apparemment une clé du de la notification quand UIKeyboardWillShowNotification est lancée. 


  • AliGatorAliGator Membre, Modérateur

    ça me semble bien compliqué d'observer la vitesse, etc... non ?

    Comment ça bien compliqué ? Au contraire.

    Tu observes la notification UIKeyboardWillShowNotification, et quand tu la reçois, tu as une clé qui contient la frame et une clé (UIKeyboardAnimationDurationUserInfoKey comme mentionné par Larme) qui contient la durée. Du coup tu peux utiliser ça pour faire un [UIView animateWithDuration:laMemeDuree animation:^{ /* changer la frame de ton champ de texte pour que son bottom soit aligné avec le top de la frame du keyboard */ }] et basta.
  • colas_colas_ Membre
    septembre 2015 modifié #6

    ok, c'est vrai !


     


    Merci de vos retours !


Connectez-vous ou Inscrivez-vous pour répondre.