如何在OS X桌面上制作全屏叠加?

时间:2011-08-27 23:02:43

标签: objective-c cocoa macos overlay

我想制作某种可绘制的表面,它存在于鼠标光标下方,但高于桌面上呈现的所有内容。我试图在鼠标后面创建一条“踪迹”。

如何在Cocoa和Objective-C中执行此操作?

1 个答案:

答案 0 :(得分:2)

您需要创建无边框窗口的子类NSWindow并将其窗口级别设置为NSScreenSaverWindowLevel - 1

- (id)initWithContentRect:(NSRect)contentRect 
                styleMask:(NSUInteger)aStyle
                  backing:(NSBackingStoreType)bufferingType
                    defer:(BOOL)flag
{
    self=[super initWithContentRect:contentRect 
                          styleMask:NSBorderlessWindowMask 
                            backing:bufferingType
                              defer:flag];

    if(self!=nil)
    {
        [self setHasShadow:NO];
        [self setOpaque:NO];
        [self setBackgroundColor:[NSColor clearColor]];
        [self setLevel:NSScreenSaverWindowLevel - 1];
    }
    return self;
}