首页 > 解决方案 > Swift 中的多个 UITextField 验证

问题描述

我需要在注册表单中进行多个文本字段验证。我有一个验证器,当文本字段中的文本无效时会引发错误,并且我有验证所有文本字段的函数

    func validateTextFields() {
    do {
        let email = try emailTextField.validatedText(validationType: ValidatorType.email)
        let userName = try userNameTextField.validatedText(validationType: ValidatorType.userName)
        let birthday = try birthdayTextField.validatedText(validationType: ValidatorType.birthday)
        let password = try oldPasswordTextField.validatedText(validationType: ValidatorType.password)
    } catch ValidationError.InvalidEmail {
        emailTextField.showErrorLabel(error: "Invalid email")
    } catch ValidationError.UserNameIsTooShort {
        userNameTextField.showErrorLabel(error: "UserName is too short")
    } catch ValidationError.InvalidPassword {
        oldPasswordTextField.showErrorLabel(error: "Invalid password")
    } catch ValidationError.InvalidBirthday {
        birthdayTextField.showErrorLabel(error: "Invalid Birthday")
    } catch let error {
        #if DEBUG
        print(error.localizedDescription)
        #endif
    }
}

该函数的问题是它捕获一个错误然后停止工作,我在我的表单中只看到一个错误标签。我应该如何快速进行多个文本字段验证。我应该抛出验证错误还是可以使用布尔值进行验证。我想用 IBOutletCollection 来做,但我不知道如何让文本字段知道什么样的验证它应该传递给循环

标签: swiftvalidationuitextfield

解决方案


推荐阅读