swift - UITextField validieren

Ich habe diese Outlets in meiner App:

@IBOutlet var name1: UITextField!

@IBOutlet var name2: UITextField!

@IBOutlet var name3: UITextField!

@IBOutlet var name4: UITextField!

@IBOutlet var newButton: UIButton!

Was ich versucht habe, ist das Folgende:

Immer wenn der Benutzer etwas in eines dieser vier Textfelder eingibt oder etwas löscht, möchte ich überprüfen, ob ein Textfeld leer ist

Wenn ein Textfeld leer ist, sollte die Schaltfläche deaktiviert sein.

Wenn alle Textfelder gesetzt sind (nicht leer), sollte die Schaltfläche aktiviert sein.

Mein Code:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

    setButton()

    return true
}

func setButton() {

    let inputValid = checkInput()

    if inputValid {

        newButton.enabled = true

    } else {

        newButton.enabled = false

    }

}

func checkInput() -> Bool {

    let name1Value = name1.text
    let name2Value = name2.text
    let name3Value = name3.text
    let name4Value = name4.text

    if !name1Value.isEmpty && !name2Value.isEmpty && !name3Value.isEmpty && !name4Value.isEmpty {

        return true

    }

    return false

}

Ok, es funktioniert erstmal zu 50%.

Wenn ich in jedes Textfeld ein Zeichen eingebe, ist die Schaltfläche immer noch deaktiviert.

Wenn ich einem Textfeld ein zweites hinzufüge, wird die Schaltfläche aktiviert etc ...

Könnte mir jemand dabei helfen?

Gruß und danke!

Antworten auf die Frage(10)

Ihre Antwort auf die Frage