SwiftUI - 如何更改文本字段的文本颜色?

Yho*_*dri 18 colors textcolor swift swiftui

我正在尝试在 SwiftUI 中更改 Textfield(用户编写的文本)的文本颜色。我正在尝试 foregroundColor 但它更改了占位符的文本颜色。

你如何在 SwiftUI 中做到这一点?

 TextField($variable, placeholder: Text("a text"))
            .foregroundColor(.green)
Run Code Online (Sandbox Code Playgroud)

Mo *_*ani 27

.foregroundColor实际上确实会更改文本颜色,TextField但仅当它具有默认值时,例如这将正常工作:

TextField(.constant("Hello World"), placeholder: Text("Type here..."))
  .foregroundColor(.green)
Run Code Online (Sandbox Code Playgroud)

但是一旦你删除了整个文本,文本字段不仅会失去它的颜色,还会失去它的其他修饰符,比如它的对齐方式。这可能是当前版本中的错误,因此我将提交错误报告。


更新:此问题已在Xcode 11 beta 3 中修复。

  • 自从 Xcode 11 正式发布(或者可能更早)以来,似乎不再可能有“Text”占位符)。 (2认同)

小智 7

用于background()设置背景颜色和foreground()设置输入文本颜色

struct PlaygroundTestView: View {
    
    @State var searchText = ""
    
    var body: some View {
        
        TextField("Search", text: $searchText)
        .font(Font.system(size: 14))
        .padding()
        .background(RoundedRectangle(cornerRadius: 50).fill(Color.white))
        
        .foregroundColor(.black)
        .padding()
        .offset(x:8, y: 10)
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 现在这在 Xcode 12 / iOS14 中是否已损坏/无法工作?我已经尝试按照此处所述设置前景色、背景色和 .bold,但我得到的只是淡灰色且大部分不可读的文本。 (4认同)