2011-09-09 1 views
0

Je suis à l'intérieur d'un contrôleur et j'aimerais accéder à la fenêtre principale actuellement affichée et la fermer. Mais quand j'essaye:Pourquoi ne puis-je pas accéder à la variable globale NSApp à partir d'un contrôleur?

[NSApp mainWindow] close]; 

rien ne se passe. Alors, comment puis-je y accéder?

+1

Je ne l'ai jamais vu '' NSApp' être nil'. Est-ce que '- [NSApplication sharedApplication]' 'nil' aussi? Avez-vous essayé 'NSLog()' au lieu d'utiliser le débogueur? –

+0

Comment vérifier si [NSApplication sharedApplication] est nul? Je suppose que je peux utiliser NSApp sans le déclarer? Et je ne sais pas comment NSLog objets, juste des chaînes. –

+1

Essayez 'NSLog (@" NSApp =% @ ", NSApp); NSLog (@ "sharedApp:% @", [NSApplication sharedApplication]); '. Le spécificateur de format '% @' peut être utilisé pour formater des objets. –

Répondre

0

je devais utiliser quelque chose comme:

[[NSApp delegate] closeFilePanel]; 
+0

Cela n'a rien à voir avec la question. Si 'NSApp' était' nil', vous ne pourriez pas lui envoyer de message, ni 'mainWindow' ni' delegate' ni aucun autre. –

+0

Comme je l'ai mentionné dans les commentaires, j'ai découvert que NSApp n'était pas vraiment nul. J'ai mis à jour la question. –

Questions connexes