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

ulydmbyx  于 2023-02-07  发布在  Swift
关注(0)|答案(4)|浏览(328)

我尝试改变SwiftUI中Textfield(用户写入的文本)的文本颜色。我尝试使用foregroundColor,但它改变了占位符的文本颜色。
如何在SwiftUI中执行此操作?

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

7gcisfzg1#

.foregroundColor确实改变了TextField的文本颜色,但只有当它有一个默认值时,例如,这将工作得很好:

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

但是一旦你删除了整个文本,文本域不仅会失去颜色,还会失去其他的修饰符,比如对齐方式。这可能是当前版本中的一个bug,所以我会提交一个bug报告。

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

7ajki6be

7ajki6be2#

使用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)
    }
}
epggiuax

epggiuax3#

应更改文本颜色以使用文本字段.foreground color的属性。已为Xcode Version 11.1 (11A1027)更新
快速用户界面

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

ecfdbz9o4#

如果您想在swift 5中为文本给予特定颜色

Text("Your Text")
     .foregroundColor(Color(uiColor: UIColor(red: 0.631, green: 0.678, blue: 0.769, alpha: 1)))

相关问题