我有一个Mac应用程序,并通过我一个InterfaceBuilder中的NSWindow标题栏设置为透明。但它不是完全透明的,总有窗口上方的线。我敢肯定这是标题栏的高亮部分。您可能需要通过图片仔细一看,它只是红色的盒子里面,但是当你运行应用程序是相当明显的。
我也试图使窗口FullSizeContentView。但是这都没有区别。白色高亮部分只会向下移动到我的窗口的顶部。而且因为我使用圆角的窗口,它仍然是非常明显的(我不知道为什么它不会夹的标题栏)
提前致谢。真希望有人可以帮我出这一点。下面是我用来创建窗口部分的代码:
final class BaseWindow: NSPanel {
override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) {
...
isMovableByWindowBackground = true
isMovable = true
level = .mainMenu
isOpaque = false
styleMask = [.titled]
titlebarAppearsTransparent = true
titleVisibility = .hidden
backgroundColor = .clear
collectionBehavior = [.ignoresCycle, .canJoinAllSpaces]
...
}
}
从代码中删除标题式面膜,并检查其工作
我使用下面的代码,它为我工作正常
let window = NSWindow(contentRect: NSMakeRect(10, 10, 700, 700), styleMask: .titled, backing: .buffered, defer: false)
window.isOpaque = false
window.titlebarAppearsTransparent = true
window.makeKeyAndOrderFront(nil)
window.isMovableByWindowBackground = true
不知道你是否有一个工具栏,但如果你有,你必须删除分隔符。