Swift 3 NSNotificationCenter Keyboardwillshow/ausblenden

Ich habe ein Stück code, arbeitete in Swift 2 und ich habe versucht, mit Xcode zu aktualisieren Sie den code auf die neueste version und ich fest alles ausser zwei Fragen.

Habe ich diesen code :

let loginvc: LoginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! LoginVC
NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
NotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: nil)

Dass Paare zusammen mit diesem:

func keyboardWillShow(notification: NSNotification) {

    constraint.constant = -100
    UIView.animate(withDuration: 0.3) {
        self.view.layoutIfNeeded()
    }
}

func keyboardWillHide(notification: NSNotification) {

    constraint.constant = 25
    UIView.animate(withDuration: 0.3) {
        self.view.layoutIfNeeded()
    }
}

Auf den ersten Teil bekomme ich jetzt eine Fehlermeldung

Typ 'LoginViewController' has no member 'keyboardWillShow ein - /Ausblenden'

Ich verstehe nicht, warum es nicht sehen, die Methode unter.

Weiß jemand eine Lösung für dieses Problem?

  • hast u fügen Sie das NotificationCenter im inneren viewDidLoad() oder viewDidAppear () - Methode?
  • Ändern LoginViewController.keyboardWillShow(_:) zu LoginViewController.keyboardWillShow(notification:)?
  • Probiert, xCode möchte ich die _ wieder in
  • Sind Sie mit dem hinzufügen der NotificationCenter Beobachter in der LoginViewController Klasse? Sind beide Funktionen in dieser Klasse zu? Haben Sie versucht #selector(keyboardWillShow())?
  • die funcs sind in der selben Klasse und ich habe gerade versucht, die. Die Benachrichtigung der Beobachter in der viewDidLoad
  • Versuchen func keyboardWillHide(_ notification: NSNotification) { und #selector(LoginViewController.keyboardWillHide(_:)). Beachten Sie die zusätzlichen Unterstrich in der keyboardWillHide Funktion.
  • check out aktualisierte Swift-Programmierung Buch. Seite 1027 und 1028 sind wahrscheinlich das, was Sie suchen, könnten Sie auch haben, um eine @objc(keyboardWillHideWithNotification:) zu Ihrer Klasse.
  • durch die Kombination dieser beiden Kommentare xCode mir erlaubt, klicken Sie auf Bearbeiten und jetzt jammert nicht mehr...danke
  • wenn Sie wollen, um es als eine Antwort kann ich markieren Sie es richtig
  • Nur gepostet meine Antwort! Ich bin froh, geholfen zu haben.

Schreibe einen Kommentar