Swiftui MacOS窗口的快捷界面,带圆角,不带标题栏

Swiftui MacOS窗口的快捷界面,带圆角,不带标题栏,swiftui,nswindow,cornerradius,Swiftui,Nswindow,Cornerradius,我想在我的窗口上实现一个没有标题栏或小型化设置的圆角半径。我必须覆盖NSWindow的canBecomeKey以使窗口中的视图可选择 我已经看到了很多方法可以在旧版本的swift或那些使用interface builder的版本中实现这一点,但我使用的是swiftUI 这是我的窗口覆盖: 类SWindow:NSWindow{ 覆盖变量可以变成键:Bool{ 返回真值 } } 应用程序内代理: var搜索窗口:SWindow! 让searchView=searchView()。拐角半径(10)

我想在我的窗口上实现一个没有标题栏或小型化设置的圆角半径。我必须覆盖NSWindow的canBecomeKey以使窗口中的视图可选择

我已经看到了很多方法可以在旧版本的swift或那些使用interface builder的版本中实现这一点,但我使用的是swiftUI

这是我的窗口覆盖:

类SWindow:NSWindow{
覆盖变量可以变成键:Bool{
返回真值
}
}
应用程序内代理:

var搜索窗口:SWindow!
让searchView=searchView()。拐角半径(10)
searchWindow=SWindow(
contentRect:NSRect(x:0,y:0,宽度:850,高度:500),
样式掩码:[.resizeable],
备份:。已缓冲,延迟:false)
searchWindow.center()
searchWindow.isReleasedWhenClosed=false
searchWindow.isMovableByWindowBackground=true
searchWindow.titlebarAppearsTransparent=true
searchWindow.isOpaque=false
searchWindow.contentView=NSHostingView(根视图:searchView)
搜索窗口。MakeKeyandDerfront(真)
添加SearchView().cornerRadius(10)似乎会在视图上创建一个角半径,但窗口仍然是方形的

…在视图上创建一个圆角半径,但窗口仍然是方形的

您需要删除窗口背景

window.backgroundColor = NSColor.clear
顺便说一句,添加完整的内容大小

searchWindow = SWindow(
    contentRect: NSRect(x: 0, y: 0, width: 850, height: 500),
    styleMask: [.resizable, .fullSizeContentView],
    backing: .buffered, defer: false)

它起作用了!我必须设置下一个子元素的背景色,但这是一种享受。感谢您今天的帮助:)