Я хочу создать приложение, которое добавит водяной знак на экран в реальном времени на MacOS, и водяной знак должен всегда плавать над другим приложением.
Я определил пользовательское прозрачное окно. Он работает отлично, за исключением следующих случаев: полноэкранный режим, клавиша комбинации управления полетом вниз, клавиша комбинации рабочего стола вниз.
Поскольку оно не работает, когда другое приложение работает в полноэкранном режиме, возможно отключить другое приложение в полноэкранном режиме
Я заметил, что NSWindowLevel и CGWindowLevelKey , Кто-нибудь знает, как использовать в моей ситуации?
Это другие способы сделать это приложение плавающим над другим приложением, используя другой API?
Я привел мою реализацию для вашей справки со следующими кодами, чтобы окно водяного знака могло всплывать над другими окнами.
прикрепленный скриншот
Нажмите здесь, чтобы загрузить мой проект
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;
}
}