beginSheet, NSWindow et NSDocument...

yoannyoann Membre
19:55 modifié dans API AppKit #1
Salut tout le monde,

Je me trouve devant un problème tout con et dont je ne trouve pas la solution...

J'ai une application document based qui à  l'ouverture d'une nouvelle fenêtre doit m'afficher une fenêtre modale attaché à  la fenêtre de mon document (cette modale sert a demander l'adresse d'un serveur ainsi que les ID utilisateurs).

J'ai donc gentiment suivit la doc pour arriver à  ceci

MyDocument.m
<br />-(void)showLoginWindow {<br />	[NSApp beginSheet: i_loginWindow<br />	&nbsp;  modalForWindow: i_mainWindow<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; modalDelegate: self<br />	&nbsp;  didEndSelector: @selector(didEndSheet:returnCode:contextInfo:)<br />	&nbsp; &nbsp; &nbsp; contextInfo: nil];<br />}<br /><br />- (void)windowControllerDidLoadNib:(NSWindowController *) aController {<br />	[super windowControllerDidLoadNib:aController];<br />//...	<br />	[self showLoginWindow];<br />}<br /><br />-(IBAction)sheetOK:(id)sender {<br />//...<br />	[NSApp endSheet:i_loginWindow];<br />	[self refreshView:self];<br />}<br /><br />-(IBAction)sheetCancel:(id)sender {<br />	[NSApp endSheet:i_loginWindow];<br />	[i_mainWindow close];<br />}<br /><br />- (void)didEndSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo {<br />	[sheet orderOut:self];<br />}<br />


Et je me retrouve avec une modale à  l'ouest et qui ne veut pas partir quand passe le orderOut...

capturedcran20100527200.png

Si quelqu'un peut me pointer la bonne page de doc...

Réponses

  • mpergandmpergand Membre
    mai 2010 modifié #2
    Problème déjà  évoqué sur ce même forum, il y a un moment:
    http://forum.pommedev.com/index.php?topic=280.0

    Pour moi, la soluce la plus simple, c'est d'appeler ta méthode "showLoginWindow" par performSelectorAfterDelay.

    [EDIT]
    Y a encore plus simple:
    <br />[aController showWindow];<br />[self showLoginWindow];<br />
    


    [EDIT2] c'est pas bon, y a plus le cascading  :D

    avec performSelector, c'est bon !
  • yoannyoann Membre
    19:55 modifié #3
    Merci pour ta réponse !

    Pour ma part avec ton EDIT 1 j'ai bien le cascading !
Connectez-vous ou Inscrivez-vous pour répondre.