Re: Displaying a custom sheet
Re: Displaying a custom sheet
- Subject: Re: Displaying a custom sheet
- From: Laurent Daudelin <email@hidden>
- Date: Tue, 12 Apr 2011 15:00:18 -0700
On Apr 12, 2011, at 14:25, Luc Van Bogaert wrote:
> Hi,
>
> I'm having some trouble to correctly display a custom sheet. Here's the relevant code I'm using. This code is run from the application delegate. "newGameLevelSheet" is a IBOutlet property defined with the "assign" modifier.
>
> if (!self.newGameLevelSheet)
> [NSBundle loadNibNamed:@"NewGameLevelSheet" owner:self];
> [NSApp beginSheet:self.newGameLevelSheet
> modalForWindow:self.window
> modalDelegate:self
> didEndSelector:@selector(didEndNewGameLevelSheet:returnCode:contextInfo:)
> contextInfo:nil];
>
> The problem I'm having is that the first time this code runs, the sheet is displayed, but not modal to self.window, instead it is displayed "separated" from the application window (meaning non-modal at a different screen location). However, on all subsequent runs, the sheet is displayed correctly "tied" to the window, and I can also close it correctly by sending it an orderOut: message.
>
> I don't understand what is causing the window to be displayed non-modal the first time after it is loaded from the nib. Could anyone please provide some insights. Thank you.
I would think that's because the first time, not knowing where your code that creates that sheet is (probably before awakeFromNib), the "self.window" hasn't been set (it's nil) so the system thinks you just want to have your sheet displayed there. The 2nd time you run it, the "self.window" now points to the correct window which explains why the sheet is displayed correctly.
-Laurent.
--
Laurent Daudelin
AIM/iChat/Skype:LaurentDaudelin http://www.nemesys-soft.com/
Logiciels Nemesys Software email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden