Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改控件SwiftUI的属性_Swift_Swiftui - Fatal编程技术网

修改控件SwiftUI的属性

修改控件SwiftUI的属性,swift,swiftui,Swift,Swiftui,我是新使用SwiftUI的,我不知道如何才能使按钮更改控件的属性,例如,另一个文本字段 例如: HStack { SecureField("Password", text: $password) .frame(width: 330, height: 50, alignment: .bottomLeading) .textFieldStyle(PlainTextFie

我是新使用
SwiftUI
的,我不知道如何才能使
按钮更改控件的属性,例如,另一个
文本字段

例如:

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()
    }
}
我想在按下
按钮时查看当前密码,但我不知道如何调用我的
安全域,因为我没有ID

(使用Swift,我可以创建一个
IBOulet
iAction
,但我不知道如何在
SwiftUI
上实现这一点)

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

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()
            }
        }
    }
}