SwiftUI-Textfeldfarbe

Sep 20 2020

Haben Sie eine Idee, wie Sie die Farbe des Textfeld-Platzhalters wie im angehängten Bild ändern können?

Ich kann den Text "E-Mail" nicht weiß färben, er bleibt immer grau.

Ich möchte es genauso machen wie das Bild.

Vielen Dank für die Hilfe

SecureField(String("Password"), text: $pass).padding(.all).border(Color.white).cornerRadius(3.0).padding(.horizontal)



Antworten

4 Asperi Sep 20 2020 at 06:10

Nachfolgend finden Sie eine Demo eines möglichen Ansatzes. Es könnte sich auch lohnen, dies als darstellbar zu betrachten, UITextFieldda es viel konfigurierbarer ist.

Getestet mit Xcode 11.7 / iOS 13.7

struct PlaceholderTextFieldStyle: TextFieldStyle {
    let placeholder: String
    @Binding var text: String

    init(_ placeholder: String, text: Binding<String>) {
        self.placeholder = placeholder
        self._text = text
    }

    func _body(configuration: TextField<Self._Label>) -> some View {
        ZStack {
            if text.isEmpty {
                Text(placeholder)
            }
            configuration
        }.foregroundColor(.white)
    }
}

struct DemoView: View {
    @State private var pass = ""

    var body: some View {
        SecureField("", text: $pass) .textFieldStyle(PlaceholderTextFieldStyle("Password", text: $pass))
        .padding(.all).border(Color.white).cornerRadius(3.0).padding(.horizontal)
        .padding()
        .background(Color.blue)

    }
}