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

san*_*.gs 9 macos nstextfield swift swiftui

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

谢谢。

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

    var body: some View {
        TextEditor(text: .constant("Placeholder"))
            .background(Color.red)
    }
}
Run Code Online (Sandbox Code Playgroud)

dav*_*dev 8

我刚刚在这里发布了类似问题的答案

借助扩展,您可以清除 NSTextView 类的默认背景颜色,然后.background在 SwiftUI 中使用修饰符,如下所示

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
    }
}
Run Code Online (Sandbox Code Playgroud)