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

时间:2019-06-22 12:17:50

标签: swift colors textcolor swiftui

我正在尝试在SwiftUI中更改Textfield(用户编写的文本)的文本颜色。我正在尝试使用前台颜色,但它会更改占位符的文本颜色。

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

 TextField($variable, placeholder: Text("a text"))
            .foregroundColor(.green)

4 个答案:

答案 0 :(得分:2)

.foregroundColor实际上确实更改了TextField的文本颜色,但是只有当它具有默认值时,例如,这才可以正常工作:

TextField(.constant("Hello World"), placeholder: Text("Type here..."))
  .foregroundColor(.green)

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


更新:此问题已通过 Xcode 11 beta 3 修复。

答案 1 :(得分:1)

使用文本字段.foreground color的属性应更改文本颜色 已针对Xcode Version 11.1 (11A1027)

更新

SwiftUI

TextField("Email", text: $email)
                .textContentType(.emailAddress)
                .padding(.init(top: 0, leading: 15, bottom:0 , trailing: 15))
                .foregroundColor(.blue)
                .textFieldStyle(RoundedBorderTextFieldStyle.init())

答案 2 :(得分:0)

使用background()设置背景颜色,使用foreground()设置输入文本颜色

struct PlaygroundTestView:视图{

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

}

答案 3 :(得分:0)

<块引用>
foregroundColor does it.
                Text("TEXT")
                    .font(.footnote)
                    .bold()
                    .foregroundColor(Color("ColorAccentWhite"))
                    .background(Color("ColorGrayTwo"))
                    .cornerRadius(2)