Ich habe eine Registrierung View-Controller, die 1) macht einen leeren Textfeld Text rot, nachdem der Benutzer hat die Schaltfläche Senden und 2) schüttelt das leere Textfeld mit einem UIView.Swift Wenn Statements
// if registered button is clicked and textfields are empty
if usernameTxt.text!.isEmpty || passwordTxt.text!.isEmpty || emailTxt.text!.isEmpty || fullnameTxt.text!.isEmpty {
// display red placeholders for empty textfields
usernameTxt.attributedPlaceholder = NSAttributedString(string: "Username", attributes: [NSForegroundColorAttributeName: UIColor.red])
passwordTxt.attributedPlaceholder = NSAttributedString(string: "Password", attributes: [NSForegroundColorAttributeName: UIColor.red])
emailTxt.attributedPlaceholder = NSAttributedString(string: "Email", attributes: [NSForegroundColorAttributeName: UIColor.red])
fullnameTxt.attributedPlaceholder = NSAttributedString(string: "Full Name", attributes:
[NSForegroundColorAttributeName: UIColor.red])
}
// shake username textfield if it is empty
if usernameTxt.text == "" {
usernameTxt.shake()
}
// shake password textfield if it is empty
if passwordTxt.text == "" {
passwordTxt.shake()
}
// shake email textfield if it is empty
if emailTxt.text == "" {
emailTxt.shake()
}
// shake fullname textfield if it is empty
if fullnameTxt.text == "" {
fullnameTxt.shake()
}
} else {
// remove keyboard
self.view.endEditing(true)
}
Wenn jedoch das Textfeld leer ist, ist es immer noch den roten Platzhalter-Text sowie das Textfeld Shake ausführt, aber es führt auch Code nach dem „} else {“
Hat jemand einen Vorschlag auf Schreiben Sie diesen Code so, dass der Code nach dem else nicht ausgeführt wird? Vielen Dank im Voraus
Etwas stimmt nicht mit Ihrem Code ... die Klammern sind nicht ausgerichtet. So wie es ist, zeigen Sie nicht die erste if-Anweisung, an die der else angehängt ist, so dass es unmöglich ist, sie neu zu schreiben. Wenn Sie möchten, dass else nur ausgeführt wird, wenn die anderen Felder nicht leer sind: setzen Sie die ifs in Ihre erste, wenn diese prüft, ob irgendwelche leer sind, und die else sollte an die Anweisung angehängt werden, was sie derzeit nicht ist. –
Ich habe gerade Ihre if-Anweisungen bearbeitet, um den richtigen Einzug hinzuzufügen. @EvanCarslake ist korrekt - nichts stimmt mit dem 'else' überein. Vermissen Sie eine "oberste Ebene" 'if'? So wie es aussieht, macht es nur Sinn, * alles * über die 'else' weitere 4 Leerzeichen einzufügen. – dfd
Entschuldigung, ich habe überflüssigen Code gelöscht, um ihn kürzer zu machen. Und vergessen, eine Klammer zu entfernen – codeislife