Изменить свойства элемента управления SwiftUI - PullRequest
1 голос
/ 27 января 2020

Я недавно использую 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, потому что у меня нет идентификатора (с помощью Swift я мог сделать IBOulet и IBAction, но я не знаю, как это сделать на SwiftUI)

1 Ответ

1 голос
/ 27 января 2020

Предполагается, что это делается в каком-то выделенном представлении, в которое вы переносите строку пароля из некоторой модели представления, например, c., Подход может быть следующим:

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()
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...