2010-11-25 5 views
8

J'ai besoin de lancer une fenêtre modale à partir d'un plug-in dans une application vidéo. J'ai créé une plume dans le constructeur d'interface avec une classe NSWindowController. Mais lorsque je tente de lancer la fenêtre commeLa session modale nécessite une erreur de fenêtre modale sur Mac

Registration* newWin = [[Registration alloc] initWithWindowNibName:@"Options"]; 

[NSApp runModalForWindow: [newWin window]]; 

Il me donne une erreur dans la console: Session Modal nécessite Window Modal Je pense qu'il a quelque chose à voir avec Interface Builder (Pardonne-moi, je suis vraiment nouveau à IB).

Voici le lien vers le fichier Nib et les classes. J'apprécierais que quelqu'un puisse me dire ce que j'ai fait de mal à IB. Merci.

[Lien removed]

Répondre

17

Vous instancier une instance de Registration dans le fichier nib. Ce n'est pas la façon dont vous préparez un fichier nib à utiliser avec un NSWindowController. Cet objet Registration est un objet distinct contenu dans le fichier nib, pas l'objet Registration que vous avez attribué dans le code que vous avez cité ci-dessus.

Dans la plume passé à initWithWindowNibName, le File's Ownerest l'instance NSWindowController vous créez dans le code. Ainsi, dans l'inspecteur, définissez le nom de classe du File's Owner sur Registration et connectez sa sortie window comme objet fenêtre dans le fichier nib.

+0

Ah! Je ne peux pas croire que j'ai raté ça. Merci encore! Travaillé comme un charme. – rwb

+0

Vous êtes les bienvenus :) – Yuji

+0

Je suis de retour à cette réponse * encore * et * encore * c'était le problème de ma part qui causait cette erreur, merci Yuji. Je suppose que la pratique rend parfait, j'apprendrai finalement à les relier. – SilverSideDown

Questions connexes