修改控件SwiftUI的属性

时间:2020-01-27 17:39:48

标签: swift swiftui

我是SwiftUI的新手,我不知道如何使Button更改控件的属性,例如另一个TextField

例如:

HStack {
    SecureField("Password",
                text: $password)
        .frame(width: 330,
               height: 50,
               alignment: .bottomLeading)
        .textFieldStyle(PlainTextFieldStyle())
    Button(action: {}) {
        Image(systemName: "eye.fill")
            .frame(width:10,
                   height:10)
            .foregroundColor(Color.secondary)
            .fixedSize()
    }
}

我想在按Button时看到当前的密码,但是我不知道如何给SecureField打电话,因为我没有ID (使用Swift我可以制作IBOuletIBAction,但我不知道如何在SwiftUI上做到这一点)

1 个答案:

答案 0 :(得分:1)

假设它是在某个专用视图中完成的,并且您从某些视图模型等向其传输了密码字符串,则方法可能如下

struct DemoShowPassword: View {
    @Binding var password: String
    @State private var showPassword = false
    var body: some View {
        HStack{
            if showPassword {
                TextField(" Password", text: $password) .frame(width: 330, height: 50, alignment: .bottomLeading)
                    .textFieldStyle(PlainTextFieldStyle())
            } else {
                SecureField(" Password", text: $password) .frame(width: 330, height: 50, alignment: .bottomLeading)
                    .textFieldStyle(PlainTextFieldStyle())
            }

            Button(action:{
                self.showPassword.toggle()
            }){
                Image(systemName: "eye.fill")
                    .frame(width:10, height:10)
                    .foregroundColor(Color.secondary)
                    .fixedSize()
            }
        }
    }
}
相关问题