如何在MacOS中使水印始终漂浮在屏幕上方

时间:2019-04-22 12:48:53

标签: ios swift macos cocoa

我想制作一个在MacOS的实时屏幕上添加水印的应用程序,并且水印应始终浮在其他应用程序之上。 我定义了一个自定义的透明窗口。除非在以下情况下,否则它可以正常工作:全屏模式,任务控制组合键向下,显示桌面组合键向下。

  1. 由于其他应用程序在全屏模式下不起作用,因此有可能在全屏模式下禁用其他应用程序

  2. 我注意到NSWindowLevel和CGWindowLevelKey,有人知道如何使用吗?

  3. 是否还有其他方法可以通过使用其他API使此应用浮动在其他应用之上? 我已附上我的实现以供您参考,并使用以下代码,然后水印窗口可能会浮在其他窗口之上。

attached screenshot

Click here to download my project

class WaterMarkWindow: NSWindow {

    override func awakeFromNib() {
        super.awakeFromNib()
        self.level = .floating;
        self.ignoresMouseEvents = true;
        self.isReleasedWhenClosed = false;
        self.isMovableByWindowBackground = false;
        self.alphaValue = 0.3
        self.backgroundColor = NSColor.clear;
        self.isOpaque = false;
        self.hasShadow = false;
        self.contentView?.wantsLayer = true;
    }
}

0 个答案:

没有答案