我正在尝试在 macOS 上设置文本字段的占位符颜色。我试过:
TextField("", text: $text, prompt: Text("prompt"))
.tint(.red)
但这似乎没有得到尊重。
.accentColor
已弃用(并且不起作用),.foregroundStyle
不会影响它(无论我将其放在文本字段之外还是直接放在提示上),.colorMultiply
不正确,因为它适用于整个字段,它是一种混合模式,而不是单个颜色的设置(它使所有颜色都成为您设置的颜色)。
我尝试通过子类化
TextFieldStyle
来执行自定义样式,但找不到任何会影响它的修饰符。
我需要诉诸自定义的
NSViewRepresentable
和 AppKit
吗?我认为 SwiftUI 现在已经支持这些功能了。也许我错过了一些东西。
我对插入符号颜色也有同样的问题。
如果没有可用的修改器,那么解决方法是将提示显示为覆盖层。然后你可以按照你喜欢的方式设计它:
TextField("", text: $text)
.overlay(alignment: .leading) {
if text.isEmpty {
Text("prompt")
.foregroundStyle(.red)
.allowsHitTesting(false)
}
}