it-swarm.com.de

So blenden Sie die Tastatur aus, wenn Sie die Eingabetaste drücken - Swift

Beim Versuch, die iOS-Tastatur auszublenden, wenn die Return-Taste gedrückt wird, hält sie stattdessen an und gibt den Fehler aus, der im Bild angezeigt wird. Hier ist der Code, den ich verwende:

@IBOutlet weak var scoreText: UITextField!

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}

 enter image description here

7
stevetheipad

Ihr Problem ist, dass Sie kein textField delegiert haben, um diese Methode zu verwenden. Zunächst muss Ihre Klasse das UITextFieldDelegate-Protokoll enthalten:

class yourClass: UIViewController, UITextFieldDelegate { ... }

Und in der viewDidLoad()-Methode fügen Sie Folgendes hinzu:

scoreText.delegate = self

Und dann musst du das ändern:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
}

zu diesem:

func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
    self.view.endEditing(true)
    return true
}

Schlusscode:

class yourClass: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var scoreText: UITextField!

    override func viewDidLoad(){
        super.viewDidLoad()
        scoreText.delegate = self
    }

    func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
        self.view.endEditing()
        return true
    }
}

Wenn dies nicht funktioniert, liegt das Problem nicht in der Funktion textFieldShouldReturn(). Bitte überprüfen Sie Ihre Ausgangsanschlüsse.

Versuche dies

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

In Swift 4 oder 5 können Sie Folgendes verwenden:

  1. ein Projekt erstellen
  2. füge UITextField hinzu und verbinde dich mit ViewController
  3. implementieren Sie UITextFieldDelegate in ViewController
  4. Initialisieren Sie den UITextField-Delegaten
  5. Fügen Sie die textFieldShouldReturn-Methode in ViewController hinzu
  6. Hier ist der vollständige Code

    class ViewController: UIViewController,UITextFieldDelegate {
    
     //Connect to text field
     @IBOutlet weak var scoreText: UITextField!
    
     override func viewDidLoad() {
       super.viewDidLoad()
    
        //must initialize delegate
        scoreText.delegate = self
      }
    
     //add method
     func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
     }  
    
    }
    
0
Enamul Haque