我想在macOS上更改SwiftUI文本编辑器的背景颜色。 下面的代码(用于iOS)是否有变体可用于NSTextField而不是UITextView?
谢谢。
struct ContentView: View {
init() {
UITextView.appearance().backgroundColor = .clear
}
var body: some View {
TextEditor(text: .constant("Placeholder"))
.background(Color.red)
}
}
答案 0 :(得分:2)
我刚刚在类似问题 here
上发布了该问题的答案借助扩展,您可以清除 NSTextView 类的默认背景颜色,然后像这样在 SwiftUI 中使用 .background
修饰符
extension NSTextView {
open override var frame: CGRect {
didSet {
backgroundColor = .clear //<<here clear
drawsBackground = true
}
}
}
struct ContentView: View {
@State var string: String = ""
var body: some View {
TextEditor(text: $string)
.textFieldStyle(PlainTextFieldStyle())
.background(Color.red) //<< here red
}
}
答案 1 :(得分:-3)
像这样快速显示吗?
myNSTextField.drawsBackground = true
myNSTextField.backgroundColor = NSColor.red
那:
struct ContentView: View {
@State var myText: String = "blah blah blah"
var body: some View {
VStack(alignment: .leading) {
TextField("Enter text", text: $myText)
.background(Color.red)
}.padding()
}
}