wie man die Höhe der Tastatur, einschließlich der Vorschläge, die bar im swift 4

Verwendet habe ich :

NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)

@objc func keyboardWillShow(notification: NSNotification) {
      if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
      let keyboardHeight : Int = Int(keyboardSize.height)
      print("keyboardHeight",keyboardHeight)
      KeyboardHeightVar = keyboardHeight
      }
}

zu ändern, um die Höhe der Tastatur, aber die Höhe nicht die Vorschläge bar. Wie bekomme ich den Wert von der Tastatur Höhe plus die Vorschläge bar Höhe?

4 Antworten

  • Enrique Bermúdez
    8. Juni 2018

    Verwenden Sie UIKeyboardFrameEndUserInfoKey statt UIKeyboardFrameBeginUserInfoKey und UIKeyboardDidShow statt UIKeyboardWillShow.

    NotificationCenter.default.addObserver(self, selector: 
    
    #selector(keyboardWillShow), name: .UIKeyboardDidShow, object: nil)
        @objc func keyboardWillShow(notification: NSNotification) {
    
                if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
                    let keyboardHeight : Int = Int(keyboardSize.height)
                    print("keyboardHeight",keyboardHeight)
                    KeyboardHeightVar = keyboardHeight
                }
    
            }
    
  • Mahendra GP
    8. Juni 2018

    Zuerst müssen Sie sich für eine Benachrichtigung ausgelöst, wenn die Tastatur sichtbar ist.

    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
    

    Holen Tastatur Höhe in der Methode...

    @objc func keyboardWillShow(_ notification: Notification) {
    
     if let keyboardFrame: NSValue = notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue {
        let keyboardRectangle = keyboardFrame.cgRectValue
        let keyboardHeight = keyboardRectangle.height
     }
    }  
    
  • PGDev
    8. Juni 2018

    Versuchen Sie es mit UIKeyboardDidShow statt.

    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWasShown(_:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
    

    Sie erhalten den Rückruf in keyboardWasShown Methode, wenn die Tastatur auf dem Bildschirm erscheinen,

    @objc func keyboardWasShown(_ notification : Notification)
    {
        let info = (notification as NSNotification).userInfo
        let value = info?[UIKeyboardFrameEndUserInfoKey]
        if let rawFrame = (value as AnyObject).cgRectValue
        {
            let keyboardFrame = self.reportItTableView.convert(rawFrame, from: nil)
            let keyboardHeight = keyboardFrame.height //Height of the keyboard
        }
    }
    
  • IvanPavliuk
    4. Mai 2019

    Mithilfe des UIKeyboardFrameEndUserInfoKey statt UIKeyboardFrameBeginUserInfoKey gibt die richtige Tastatur Höhe. Zum Beispiel, wenn die Tastatur ohne die toolbar, es gibt 216.0 Höhe. Mit dem toolbar - 260.0