QuickPost: Quitar la decoración de una ventana Cocoa

Con este post inaguramos la sección “QuickPost”. Serán entradas muy pequeñas que den solución a problemas concretos.

Normalmente una ventana consta de la barra de titulo (title bar), opcionalmente una barra de scroll ( scroll bar ) y un control para cambiar el tamaño de la ventana ( resize control ) situado en la parte inferior derecha.

Además dentro de la zona de la barra de titulo se muestran diversos botones, que nos sirven para minimizar, maximizar, cerrar o ocultar la barra de herramientas ( tool bar ).

En algunas ocasiones podemos querer mostar una ventana que no tenga todas estas decoraciones. Para ello usaremos el atributo styleMask asociado a la ventana.

Los posibles valores para este atributos se pueden consultar en la referencia, básicamente tenemos:

enum {
    NSBorderlessWindowMask = 0,
    NSTitledWindowMask = 1 << 0,
    NSClosableWindowMask = 1 << 1,
    NSMiniaturizableWindowMask = 1 << 2,
    NSResizableWindowMask = 1 << 3,
    NSTexturedBackgroundWindowMask = 1 << 8
};

Estos valores se pueden sumar usando la operación lógica OR. En nuestro caso, queremos una ventana sin decoración, por lo que usaremos NSBorderlessWindowMask.

Este atributo se lo pasaremos cuando construyamos dicha ventana, usando el método

    initWithContentRect:styleMask:backing:defer:

o bien, usando el método setStyleMask sobre una ventana ya creada, por ejemplo:

- (void)applicationDidFinishLaunching:
                               (NSNotification *)aNotification
{
    [window setStyleMask:NSBorderlessWindowMask];
}

Siendo window una variable ligada a una ventana construida con Interface Builder.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: