我有一个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]
...
}
}
答案 0 :(得分:0)
从代码中删除标题样式蒙版,并检查其是否有效
我正在使用以下代码,对我来说很好用
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
答案 1 :(得分:0)
不确定是否有工具栏,但必须删除工具栏。