我是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我可以制作IBOulet
和IBAction
,但我不知道如何在SwiftUI
上做到这一点)
答案 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()
}
}
}
}