swift - validando UITextField
Eu tenho essas tomadas no meu aplicativo:
@IBOutlet var name1: UITextField!
@IBOutlet var name2: UITextField!
@IBOutlet var name3: UITextField!
@IBOutlet var name4: UITextField!
@IBOutlet var newButton: UIButton!
O que eu tentei fazer é o seguinte:
Toda vez que o usuário digita algo em um desses quatro campos de texto ou exclui algo, quero verificar se algum campo de texto está vazio
Se algum campo de texto estiver vazio, o botão deverá ser desativado.
Se todo o campo de texto estiver definido (não vazio), o botão deverá estar ativado.
Meu Código:
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, funciona 50% por enquanto.
Quando digito um caractere em cada campo de texto, o botão ainda está desativado.
Quando adiciono um segundo a qualquer campo de texto, o botão fica ativado etc.
Alguém poderia me ajudar com isso?
Saudações e obrigado!