Swift ui macos背景透明文本字段
正如您从图像中看到的,我有一个Swift ui macos背景透明文本字段,swift,swiftui,Swift,Swiftui,正如您从图像中看到的,我有一个TextField和之后的列表 列表有一个透明的背景,我使用的是.listStyle(SidebarListStyle()) 但是如何获得TextField所在的透明背景呢 代码: 您可以在背景色上使用.white.opacity(0.01)或Color.clear: .background( RoundedRectangle(cornerRadius: 5) .fill(Color.white.opacity(0.01))
TextField
和之后的列表
列表有一个透明的背景,我使用的是.listStyle(SidebarListStyle())
但是如何获得TextField
所在的透明背景呢
代码:
您可以在背景色上使用.white.opacity(0.01)或Color.clear:
.background(
RoundedRectangle(cornerRadius: 5)
.fill(Color.white.opacity(0.01))
或
您需要背景中的视觉效果视图(默认情况下用于侧栏样式的列表) 使用Xcode 11.4/macOS 10.15.6准备并测试演示
它不起作用,我说的是文本字段的黑暗部分。文本字段后面有什么,列表后面是不是?什么的透明背景?@Asperi:哪里有输入字段和leo这个词,在输入字段后面就是你看到的黑暗背景,我希望它是透明的,就像你在列表中看到的一样。Thx,它似乎有效,所以我输入的每个元素都必须有正确的背景?我发现了这样一个问题:如果您愿意,可以将其设置为整个内容视图的公共背景视图。您是说通过修改AppDelegate?不,而是
ContentView
。我可以问您如何,为什么。listStyle(SidebarListStyle())
在列表中给了我一个奇怪的问题,所以我想取消它。
.background(
RoundedRectangle(cornerRadius: 5)
.fill(Color.white.opacity(0.01))
.background(
RoundedRectangle(cornerRadius: 5)
.fill(Color.clear))
struct VisualEffectView: NSViewRepresentable {
func makeNSView(context: Context) -> NSVisualEffectView {
let view = NSVisualEffectView()
view.blendingMode = .behindWindow // << important !!
view.isEmphasized = true
view.material = .appearanceBased
return view
}
func updateNSView(_ nsView: NSVisualEffectView, context: Context) {
}
}
TextField("Username", text: $username)
.padding(.leading, 20)
.padding(.trailing, 20)
.background(
RoundedRectangle(cornerRadius: 5)
.fill(Color.white.opacity(0.3)
)
.padding(.leading, 20)
.padding(.trailing, 20)
)
.padding(.top)
.padding(.bottom)
.background(VisualEffectView())