首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有背景和前景的SwiftUI TextField颜色问题

具有背景和前景的SwiftUI TextField颜色问题
EN

Stack Overflow用户
提问于 2022-05-02 01:54:59
回答 1查看 794关注 0票数 0

我正在尝试将背景颜色设置为我的文本字段,它似乎为文本字段周围的填充区域设置了很好的设置,而不是设置到实际的文本字段。

代码语言:javascript
复制
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)
        }
    }
}

上面是我用的密码。下面是光模式 暗模的图片

如何使白色文本字段成为灰色文本字段(在光模式下)?

我尝试了前景色为TextFieldBGColor,但它正在改变文本字段的颜色,我不想改变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-02 02:12:02

SwiftUI的TextField拥有一个TextFieldStyle属性,该属性控制TextField的UI的某些方面--这是负责边框的内容,并在TextView上添加了背景。不确定这是否正是您想要的效果,但您可以简单地将修饰符.textFieldStyle添加到您的TextField中,以删除添加的样式,这将删除TextField的背景色。如果您想要原来的边框,您可能必须使用.background修饰符作为自定义添加该边框。

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72081678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档