Déplacer un point de vue uniquement lorsque le clavier couvre un champ de saisie

Je suis en train de construire un écran de saisie pour l'iPhone. L'écran a un certain nombre de champs de saisie. La plupart d'entre eux sur le haut de l'écran, mais les deux champs sont en bas.
Lorsque l'utilisateur tente de modifier le texte sur le bas de l'écran, le clavier s'affichera et il permettra de couvrir l'écran.
J'ai trouvé une solution simple pour déplacer l'écran vers le haut lorsque cela se produit, mais le résultat est que l'écran toujours se déplace vers le haut et les champs en haut de l'écran se déplacer hors de la portée lorsque l'utilisateur tente de modifier ceux-ci.

Est-il un moyen d'avoir l'écran seulement déplacer lorsque le fond des champs sont modifiés?

J'ai utilisé ce code, je l'ai trouvé ici:

override func viewDidLoad() {
    super.viewDidLoad()        
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}

func keyboardWillShow(sender: NSNotification) {
    self.view.frame.origin.y -= 150
}

func keyboardWillHide(sender: NSNotification) {
    self.view.frame.origin.y += 150
}
  • peut-être vous pouvez utiliser la touche func textFieldDidBeginEditing(textField: UITextField!) { } pour détecter les textfield a commencé à le modifier et de faire le clavier afficher/ masquer
  • J'ai oublié de mentionner que je suis nouveau sur Swift 🙁 Quelle serait la syntaxe correcte pour le vérifier? (comment puis-je obtenir le nom du champ dans cette fonction?)
InformationsquelleAutor John Allijn | 2015-03-02