笔者在使用SwiftUI开发macOS APP的过程中踩了一个坑,修改Button和TextField控件的背景颜色均不生效。
Button的表现是这样的:
当我问ChatGPT以及Google搜索博客时,发现所有博客介绍的都是非常正规的写法,例如:
Button(action: {
// todo
}) {
Text("wujiuye.com")
}.background(.red)
但这在开发macOS app时是不生效的。想要设置背景色,必须要给Button设置一个PlainButtonStyle样式(不知道为什么)。
Button(action: {
// todo
}) {
Text("wujiuye.com")
}.buttonStyle(PlainButtonStyle())
.background(.red)
只有先调用.buttonStyle(PlainButtonStyle())
清除系统的默认样式,我们设置的背景色才生效。
TextField控件也是一样的,在使用SwiftUI开发macOS app,想要自定义TextField的样式,就必须要先移除默认样式:给TextField设置一个PlainButtonStyle样式,代码如下:
TextField("wujiuye.com", text: $filterInput)
.textFieldStyle(PlainTextFieldStyle())
.foregroundColor(.white)
.background(.white.opacity(0.11))
//......