509 Stimmen

Schließen Sie die iOS-Tastatur, indem Sie überall mit Swift berühren.

Ich habe überall danach gesucht, aber ich kann es einfach nicht finden. Ich weiß, wie man die Tastatur mit Objective-C ausblendet, aber ich habe keine Ahnung, wie man das mit Swift macht. Weiß das jemand?

24voto

Yerbol Punkte 397

Für Swift 3 ist es sehr einfach

override func touchesBegan(_ touches: Set, with event: UIEvent?) {
    self.view.endEditing(true)
}

wenn du die Tastatur verstecken möchtest, wenn die RETURN-Taste gedrückt wird

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

aber im zweiten Fall musst du auch das Delegate von allen Textfeldern an den ViewController in der Main.Storyboard übergeben

21voto

Naishta Punkte 10822
//Einfache Übung zum Demonstrieren, unter der Annahme, dass der ViewController //ein Textfeld, einen Button und ein Label hat. Und dass das Label die //Benutzereingaben anzeigen soll, wenn der Button geklickt wird. Und wenn Sie möchten, dass die Tastatur verschwindet, //wenn irgendwo auf dem Bildschirm geklickt wird + beim Klicken der Rückkehr-Taste auf der Tastatur. Vergessen Sie nicht "UITextFieldDelegate" //und "self.userInput.delegate = self" wie unten hinzuzufügen

import UIKit

class ViewController: UIViewController,UITextFieldDelegate {

    @IBOutlet weak var userInput: UITextField!
    @IBAction func transferBtn(sender: AnyObject) {
                display.text = userInput.text

    }
    @IBOutlet weak var display: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

//Dies ist wichtig für die textFieldShouldReturn-Funktion, die TextfieldDelegate entspricht und es auf self setzt
        self.userInput.delegate = self
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Ressourcen freigeben, die wiederhergestellt werden können.
    }

//Das ist für die Tastatur, um FORTZUGEHEN !! wenn der Benutzer irgendwo auf 
   // der Ansicht klickt
    override func touchesBegan(touches: Set, withEvent event: UIEvent?) {
        self.view.endEditing(true)
    }

//Das ist für die Tastatur, um FORTZUGEHEN !! wenn der Benutzer "Return" drückt  auf der Tastatur

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

}

14voto

NoodleOfDeath Punkte 14126

Um auf Esqarrouth's Antwort einzugehen, verwende ich immer folgendes, um die Tastatur zu entfernen, insbesondere wenn die Klasse, von der aus ich die Tastatur entferne, keine view-Eigenschaft hat und/oder keine Unterklasse von UIView ist.

UIApplication.shared.keyWindow?.endEditing(true)

Oder, für Bequemlichkeit,

UIApplication.endEditing(true)

mit der folgenden Erweiterung der Klasse UIApplication:

extension UIApplication {

    /// Entfernt die Tastatur aus dem Schlüsselfenster der
    /// freigegebenen Anwendungsinstanz.
    ///
    /// - Parameter:
    ///     - force: `true` angeben, um den ersten Responder zum Aufgeben zu zwingen.
    open class func endEditing(_ force: Bool = false) {
        shared.endEditing(force)
    }

    /// Entfernt die Tastatur aus dem Schlüsselfenster dieser 
    /// Anwendungsinstanz.
    ///
    /// - Parameter:
    ///     - force: `true` angeben, um den ersten Responder zum Aufgeben zu zwingen.
    open func endEditing(_ force: Bool = false) {
        keyWindow?.endEditing(force)
    }

}

13voto

bernard rayoso Punkte 153

In Swift kannst du verwenden

override func touchesBegan(_ touches: Set, with event: UIEvent?) {
    super.touchesBegan(touches, with: event)
    view.endEditing(true)

}

13voto

NikaE Punkte 624

Swift 3: Einfachste Möglichkeit, die Tastatur zu minimieren:

  //Tastatur minimieren Methode
    func keyboardDismiss() {
        textField.resignFirstResponder()
    }

    //Füge Gesten-Erkennung hinzu, um die Tastatur zu minimieren, wenn das View berührt wird
    @IBAction func viewTapped(_ sender: AnyObject) {
        keyboardDismiss()
    }

    //Tastatur minimieren mit der Return-Taste (Done Button)
    //Vergiss nicht, das UITextFieldDelegate-Protokoll hinzuzufügen
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        keyboardDismiss()

        return true
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X