NSWindow标题栏不能是完全透明的?

问题描述 投票:1回答:2

我有一个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]
        ...
    }
}
swift macos nswindow appkit
2个回答
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

0
投票

不知道你是否有一个工具栏,但如果你有,你必须删除分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.