在 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
}
}
我想在 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
}
}