Why the splash window can’t show before the App lunch?

Discussion in 'Mac Programming' started by xiaohuli170, Mar 31, 2009.

  1. xiaohuli170 macrumors newbie

    Jan 13, 2009
    0 vote down

    I want to show a splash Screen before the App lunch. First I make the SplashWindow subclassing the NSWindow, the code is : - (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {

    self = [super initWithContentRect:contentRect

    styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; [self setBackgroundColor: [NSColor clearColor]]; [self setLevel: NSStatusWindowLevel]; [self setAlphaValue:1.0]; [self setOpaque:NO]; [self setHasShadow: YES]; return self;


    and then in the awake from nib in the main app controller:

    loadWindow = [[NSWindow alloc] initWithContentRect:[loadWindow frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES]; [loadWindow setContentView:theView]; [loadWindow setHasShadow:YES]; [loadWindow setLevel:NSStatusWindowLevel]; [loadWindow makeKeyAndOrderFront:self];

    and then I let the loadWindow closed after 3 secondes, I used the method

    [loadWindow orderOut:self],but when the splash window closed , the mainwinow didn't show . what am I missing? My App is a multi_Documents . and in the mainMenu.nib there was one window(loadwindow),in IB I have connected up the loadWindow outlet in the main controller. I have also connected the view and image. and I changed another way : in the delegate method:applicationWillFinishLaunching: I orderFront the loadWindow , in the method:applicationDidFinishLaunching: I orderOut the loadWindow after 3 seconds, but the mainWindow didn't show too.Somebody can give some advice or codes the result the problem? Thank you very much!

Share This Page