Thank you, Ken. Your tips pointed me in an acceptable direction. I poked around 
in the cocos2d internals and discovered that your second option worked best. 
The Kiosk Mode Technical Note was helpful:
<http://developer.apple.com/library/mac/#technotes/KioskMode/Introduction/Introduction.html>

This is the code that did it for me:

NSApplicationPresentationOptions options = NSApplicationPresentationHideDock + 
NSApplicationPresentationDisableProcessSwitching;
NSNumber *presentationOptions = [NSNumber numberWithUnsignedLong:options];

NSArray *keys   = [NSArray arrayWithObjects:@"NSFullScreenModeAllScreens", 
@"NSFullScreenModeApplicationPresentationOptions", nil];
NSArray *values = [NSArray arrayWithObjects:[NSNumber numberWithBool:YES], 
presentationOptions, nil];

NSDictionary *fullScreenOptions = [[NSDictionary alloc] initWithObjects:values 
forKeys:keys];
    
[glView_ enterFullScreenMode:[NSScreen mainScreen] 
withOptions:fullScreenOptions];

I'll let my daughter bang on it tomorrow and we'll see what other sorts of 
secret key commands she discovers!

Cheers,
Clay


On Sep 22, 2012, at 2:59 AM, Ken Thomases <k...@codeweavers.com> wrote:
> 
> If your app is full-screen, you might capture the display.  See the Quartz 
> Display Services 
> <https://developer.apple.com/library/mac/#documentation/graphicsimaging/Conceptual/QuartzDisplayServicesConceptual/Articles/DisplayCapture.html>.
>   Capturing the display prevents Command-Tab app switching, Exposé/Mission 
> Control, Spotlight, etc.  I believe it will also prevent system keyboard 
> shortcuts (e.g. hiding the Dock with Command-Option-D) from reaching the 
> wider system.
> 
> It might also work to set the application presentation options.  
> -[NSApplication setPresentationOptions:] with options including 
> NSApplicationPresentationDisableAppleMenu and 
> NSApplicationPresentationDisableProcessSwitching.  Or those options can be 
> included with the options passed to -[NSView 
> enterFullScreenMode:withOptions:] under the 
> NSFullScreenModeApplicationPresentationOptions key.
> 
> Finally, you can use a custom subclass of NSApplication, override 
> -sendEvent:, detect events which correspond to hot keys, and don't pass them 
> through to super.  Detecting hot keys is kind of hard.  There's 
> CopySymbolicHotKeys(), but it can be hard to interpret the output data and 
> it's probably also not available in 64-bit.  For a private-use-only app, you 
> can get away with hard-coding keys that actually cause you trouble.
> 
> Cheers,
> Ken
> 


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to