背景和前景的 SwiftUI TextField 颜色问题
SwiftUI TextField color issue with background and foreground
我正在尝试为我的文本字段设置背景颜色,它似乎可以很好地设置文本字段周围的填充区域,但不适用于实际的文本字段
struct PrimaryTextField: View {
var initialText: String
@Binding var key: String
var body: some View {
VStack {
TextField(initialText, text: $key)
.padding()
.font(.title3)
.frame(maxWidth: .infinity)
.background(Color("TextFieldBGColor"))
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: 0.0, y: 16)
.accentColor(Color("AccentColor"))
.textFieldStyle(.roundedBorder)
}
}
}
以上是我使用的编码。下面是图片
Light mode
dark mode
如何将白色文本域变成灰色文本域(浅色模式下)?
我尝试将前景颜色更改为 TextFieldBGColor
,但它正在更改我不想更改的文本字段中的文本颜色。
SwiftUI 的 TextField
拥有一个 TextFieldStyle
属性,它控制 TextField
的 UI 的某些方面 - 这是负责 TextView
边框和添加背景的内容。不确定这是否正是您正在寻找的效果,但您可以简单地将修饰符 .textFieldStyle
添加到 TextField
以删除添加的样式,这将删除 TextField
'的背景颜色。如果您想要原来的边框,您可能必须使用 .background
修饰符将其添加回自定义。
TextField(initialText, text: $key)
.textFieldStyle(.plain) <------ Added here
.padding()
.font(.title3)
.frame(maxWidth: .infinity)
.background(Color("TextFieldBGColor"))
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: 0.0, y: 16)
.accentColor(Color("AccentColor"))
.textFieldStyle(.roundedBorder)
在此处阅读有关 TextFieldStyle
协议的更多信息:
https://developer.apple.com/documentation/swiftui/textfieldstyle
我正在尝试为我的文本字段设置背景颜色,它似乎可以很好地设置文本字段周围的填充区域,但不适用于实际的文本字段
struct PrimaryTextField: View {
var initialText: String
@Binding var key: String
var body: some View {
VStack {
TextField(initialText, text: $key)
.padding()
.font(.title3)
.frame(maxWidth: .infinity)
.background(Color("TextFieldBGColor"))
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: 0.0, y: 16)
.accentColor(Color("AccentColor"))
.textFieldStyle(.roundedBorder)
}
}
}
以上是我使用的编码。下面是图片 Light mode dark mode
如何将白色文本域变成灰色文本域(浅色模式下)?
我尝试将前景颜色更改为 TextFieldBGColor
,但它正在更改我不想更改的文本字段中的文本颜色。
SwiftUI 的 TextField
拥有一个 TextFieldStyle
属性,它控制 TextField
的 UI 的某些方面 - 这是负责 TextView
边框和添加背景的内容。不确定这是否正是您正在寻找的效果,但您可以简单地将修饰符 .textFieldStyle
添加到 TextField
以删除添加的样式,这将删除 TextField
'的背景颜色。如果您想要原来的边框,您可能必须使用 .background
修饰符将其添加回自定义。
TextField(initialText, text: $key)
.textFieldStyle(.plain) <------ Added here
.padding()
.font(.title3)
.frame(maxWidth: .infinity)
.background(Color("TextFieldBGColor"))
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: 0.0, y: 16)
.accentColor(Color("AccentColor"))
.textFieldStyle(.roundedBorder)
在此处阅读有关 TextFieldStyle
协议的更多信息:
https://developer.apple.com/documentation/swiftui/textfieldstyle