我正在尝试在SwiftUI中更改Textfield(用户编写的文本)的文本颜色。我正在尝试使用前台颜色,但它会更改占位符的文本颜色。
您如何在SwiftUI中做到这一点?
TextField($variable, placeholder: Text("a text"))
.foregroundColor(.green)
答案 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)