gpt4 book ai didi

macos - 如何在 macOS 中向屏幕(NSScreen)添加水印

转载 作者:行者123 更新时间:2023-12-03 17:46:38 31 4
gpt4 key购买 nike

我正在制作一个应用程序,它将在 Mac 上的实时屏幕上添加水印。我应该选择哪个 API?我尝试了 NSScreen 但没有找到任何可以向 NSScreen 添加 View 的方法。

像Mac Appstore中的Sakura这样的应用程序。请检查一下,我不知道应该使用哪个API。

最佳答案

最简单的解决方案是定义一个自定义的透明窗口。

创建窗口时,您指定特殊的BorderlessWindowMask。这将创建一个窗口,它是屏幕上一个简单的矩形区域,没有标题栏、边缘等。

然后你设置了一堆属性,这样

  • 窗口漂浮在其他窗口之上
  • 它不响应事件
  • 它没有阴影
  • 其背景是透明的

等等

@implementation WatermarkOverlayWindow

- (id)initWithContentRect:(NSRect)contentRect
{
self = [super initWithContentRect:contentRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
if (self!=nil)
{
self.level = NSFloatingWindowLevel;
self.ignoresMouseEvents = YES;
self.releasedWhenClosed = NO;
self.movableByWindowBackground = NO;
self.alphaValue = 1.0f;
self.backgroundColor = NSColor.clearColor;
self.opaque = NO;
self.hasShadow = NO;
}
return self;
}

...

现在您可以向此窗口添加半透明 View ,这些 View 将显示为 float 在屏幕上。或者,您可以在此窗口中放置不透明 View ,然后将窗口的整体 alphaValue 更改为小于 1.0

关于macos - 如何在 macOS 中向屏幕(NSScreen)添加水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700519/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com