繁体   English   中英

SwiftUI:如何更改 TextField 的占位符字体?

[英]SwiftUI: How to change placeholder font of TextField?

TextField(Text("Placeholder").font(.custom("font-name", size: 22)), $text)

如何更改 TextField 的占位符字体? 也许使用一些属性字符串。 我试图将其包装为Text但没有运气,出现下一个错误:

初始化程序 'init(_:text:onEditingChanged:onCommit:)' 要求 'Text' 符合 'StringProtocol'

1.简单地你可以使用这个:

TextField("", text: $text, prompt: Text("Placeholder").font(.custom("font-name", size: 22)))

2.您可以使用您的自定义占位符:

制作你的占位符:

 public struct PlaceholderStyle: ViewModifier {
    var showPlaceHolder: Bool
    var placeholder: String

    public func body(content: Content) -> some View {
        ZStack(alignment: .leading) {
            if showPlaceHolder {
                Text(placeholder)
                .padding(.horizontal, 15)
            }
            content
            .foregroundColor(Color.white)
            .padding(5.0)            
        }
    }
}

用法 :

    TextField("", text: $data)
.modifier(PlaceholderStyle(showPlaceHolder: data.isEmpty,
                           placeholder: "My Placeholder"))

可以使用不同的构造函数来完成,使用prompt ,比如

TextField("", text: $text, prompt: Text("Placeholder").font(.custom("font-name", size: 22)))

// or 

TextField(text: $text, prompt: Text("Placeholder").font(.custom("font-name", size: 22))) {
   Text("Label here or empty view")
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM