¿Cómo puedo hacer una superposición de pantalla completa en el escritorio de OS X?

Quiero crear algún tipo de superficie dibujable que exista debajo del cursor del mouse pero sobre todo lo demás renderizado en el escritorio. Estoy tratando de crear un "rastro" detrás del mouse.

¿Cómo puedo hacer esto en Cocoa y Objective-C?

preguntado el 27 de agosto de 11 a las 23:08

1 Respuestas

Necesitas subclase NSWindow para crear una ventana sin bordes y establecer su nivel de ventana en algo como 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;
}

Respondido 28 ago 11, 04:08

Esto no parece estar "siempre encima" de todas las demás ventanas, ni es transparente. ¿Porqué es eso? - Blake8086

¿Cómo creaste tu ventana? - Rob Keniger

Intenté crear la subclase que recomendó y crear una instancia desde mi AppDelegate. Por lo que pude ver, nunca se llamó al constructor anulado. Cambié a crear la ventana en AppDelegate directamente y establecer esas propiedades en ella. Eso funciono. - Blake8086

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.