我正在制作一个将在Mac的实时屏幕上添加水印的应用程序。我应该选择哪个API?我尝试了NSScreen,但没有找到任何可以向NSScreen添加视图的方法。
Mac Appstore中的Sakura这样的应用程序。请检查一下,我不知道我应该使用哪个API。
答案 0 :(得分:1)
最简单的解决方案是定义一个自定义的透明窗口。
创建窗口时,请指定特殊的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;
}
...
现在,您可以在该窗口中添加半透明视图,这些视图将显示在屏幕上。另外,您可以在该窗口中放置不透明视图,然后将窗口的整体alphaValue
更改为小于1.0
的位置。