“我的安全”字段中的提示应该在用户不满足密码凭据时显示,在满足密码凭据时消失。
到目前为止,它是一个占位符。我只包括代码片段,因为我认为问题在下面的代码行中。

片段
@ObservedObject var userInformation = FormViewModel()
SecureField("Password", text: $userInformation.password,
prompt: Text(userInformation.passwordPrompt))
}
class FormViewModel: ObservableObject {
@Published var password = ""
func isPasswordValid() -> Bool {
let passwordTest = NSPredicate(format: "SELF MATCHES%@", "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}$")
return passwordTest.evaluate(with: password)
}
var isSignUpComplete: Bool {
if !isPasswordValid() || !isEmailValid() || firstname == "" || lastname == "" {
return false
}
return true
}
var passwordPrompt: String {
if isPasswordValid(){
return ""
} else {
return "Must be between 8 and 15 letters, containing at least one capital and one number"
}
}
}发布于 2022-03-03 14:26:38
愚蠢的问题,有时你只是不知所措,忽略了一个简单的解决方案。为此,我只是在密码验证中添加了一个or语句,以检查密码是否也是空字符串。隐藏我的提示。
var passwordPrompt: String {
if isPasswordValid() || password == ""{
return ""
} else {
return "Must be atleast"
}
}https://stackoverflow.com/questions/71331766
复制相似问题