NSBorderlessWindow not responding to CMD-W/CMD-M

Posted by Sean on Stack Overflow See other posts from Stack Overflow or by Sean
Published on 2009-10-07T14:04:45Z Indexed on 2010/03/20 0:01 UTC
Read the original article Hit count: 438

Filed under:
|

I have an NSBorderlessWindow subclass of NSWindow with a transparent and non-opaque background (so it's non-rectangular in appearance). I've added my own buttons to function as the close and minimize buttons when I click them, but for some reason the window will not respond to CMD-W or CMD-M like a normal one does. I have my NSWindow subclass set to return YES to canBecomeKeyWindow and canBecomeMainWindow.

My NIB still has all the standard menu items in it that are there when you create a new project - including the "Minimize" item in the Window menu with the default shortcut CMD-M defined. It's hooked up to send performMiniaturize: to the first responder. However it is not enabled when the app is run, so it seems like it must be asking the window if it can minimize and the window says no or something. (I'm still very new to OSX/Cocoa.)

What am I missing?

Also, and maybe this is related, my borderless window has a shadow enabled - but unlike a normal titled window, when I make my window the active/front window by clicking on it, the shadow doesn't change. Normally an OSX focused window has a slightly larger/darker shadow to make it stand out more but mine never changes the shadow. It's like I'm missing something to make the OS treat this window as a real/normal/main window or something and as a result I lose the shadow change and functioning CMD-W/CMD-M.

© Stack Overflow or respective owner

Related posts about cocoa

Related posts about objective-c