在 SwiftUI for macOS 中更改 TextEditor 背景颜色

Changing TextEditor background color in SwiftUI for macOS

我想在 macOS 上更改 SwiftUI 文本编辑器的背景颜色。 下面的代码(用于 iOS)是否有适用于 NSTextField 而不是 UITextView 的变体?

谢谢。

struct ContentView: View {
    init() {
        UITextView.appearance().backgroundColor = .clear
    }

    var body: some View {
        TextEditor(text: .constant("Placeholder"))
            .background(Color.red)
    }
}

喜欢这个在 swift 中的样子吗?

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()
    
    }
}

我刚刚针对类似问题发布了该问题的答案

借助扩展,您可以清除 NSTextView 的默认背景颜色 class,然后在 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
    }
}