NSWindow Snippets

by Matt Long

Here are some snippets to help with performing different tasks using NSWindow.

Window Characteristics

  • Create Borderless Transparent Window: Create a new class that inherits from NSWindow and override the method: - (id) initWithContentRect: (NSRect) contentRect styleMask: (unsigned int) aStyle backing: (NSBackingStoreType) bufferingType defer: (BOOL) flag
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    - (id) initWithContentRect: (NSRect) contentRect
                     styleMask: (unsigned int) aStyle
                       backing: (NSBackingStoreType) bufferingType
                         defer: (BOOL) flag
    {
        if (![super initWithContentRect: contentRect 
                                 styleMask: NSBorderlessWindowMask 
                              backing: bufferingType 
                             defer: flag]) return nil;
        [self setBackgroundColor: [NSColor clearColor]];
        [self setOpaque:NO];
     
        return self;
    }
    Note: This technique allows you to give the user the perception that Core Animation layers are being drawn onto the desktop. It can also be used to create windows that appear to have non-rectangular shapes.