it-swarm.com.de

Swift UITextFieldShouldReturn Return-Taste antippen

(iOS8, Xcode6, Swift) Wie kann ich mit Swift ein Tippen auf die Schaltfläche "Zurück" erfassen?

Das Dokument unter dem folgenden Link gibt die Verwendung der textFieldShouldReturn-Methode an:

// Swift
@optional func textFieldShouldReturn(_ textField: UITextField!) -> Bool

Wo ich aufgehängt bin, befindet sich im Teil "_ textField". Ich habe das Textfeld mit Storyboard erstellt. Wie erfasse ich Benachrichtigungen für dieses bestimmte Textfeld? Muss ich eine neue Klasse erstellen und als Delegat für dieses Textfeld festlegen? Muss ich dem Text einen Namen zuweisen und ihn dann irgendwie einhaken?

https://developer.Apple.com/documentation/uikit/uitextfielddelegate/1619603-textfieldshouldreturn

41
kmiklas
class ViewController: UIViewController,UITextFieldDelegate //set delegate to class

@IBOutlet var txtValue: UITextField //create a textfile variable

override func viewDidLoad() {
   super.viewDidLoad() 
   txtValue.delegate = self //set delegate to textfile 
}

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

Implementieren Sie diese Funktion

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

Und für Delegierte können Sie über den Bereich Utilities/Connections Inspector/Delegate festlegen und dann auf ViewController ziehen (gelbe Schaltfläche im Storyboard).

Dann müssen Sie den Delegaten nicht programmgesteuert für jedes Textfeld festlegen

21
sijones

Sie müssen ein Objekt als Delegat des Textfelds festlegen. Normalerweise ist dies der Ansichts-Controller, in dem das Textfeld vorhanden ist. Sie müssen keine andere Klasse erben oder streng genommen einen Delegaten implementieren (Sie können jedoch UITextFieldDelegate implementieren, um die Dinge etwas klarer zu machen.)

3
Ben Gottlieb

In Swift 4.2 und Xcode 10.1

//UITextField delegate method
func textFieldShouldReturn(_ textField: UITextField) -> Bool {

    if textField == TF1 {
        textField.resignFirstResponder()//
        TF2.becomeFirstResponder()//TF2 will respond immediately after TF1 resign.
    } else if textField == TF2  {
        textField.resignFirstResponder()
        TF3.becomeFirstResponder()//TF3 will respond first
    } else if textField == TF3 {
        textField.resignFirstResponder()
    }
    return true
}
0
iOS