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