NSWindowController windowDidLoad pas appelé
J'ai une simple application de Cacao à l'aide d'un NSWindowController sous-classe. Dans la plume, j'ai mis:
- Du Propriétaire du fichier de classe à mon NSWindowController sous-classe
- La 'Fenêtre' outlet du Propriétaire du Fichier à la principale NSWindow dans la plume.
De la méthode init de mon NSWindowController sous-classe est appelé (j'appelle super), mais pas d'importance ce que je fais windowDidLoad n'est jamais appelée.
Je doit manquer quelque chose d'évident, mais pour la vie de moi je ne peux pas comprendre ce que c'est.
Comment êtes-vous de l'initialisation de la classe? Êtes-vous un appel à super mise en œuvre de
Mon NSWindowController sous-classe est instanciée à l'intérieur de la plume, à l'instar de ce doc en parle: developer.apple.com/mac/library/documentation/cocoa/conceptual/... Fondamentalement, MainMenu.xib crée
J'ai étaient confrontés au même type de problème: je n'allais pas appel à
-initWithWindowNibName:
?Mon NSWindowController sous-classe est instanciée à l'intérieur de la plume, à l'instar de ce doc en parle: developer.apple.com/mac/library/documentation/cocoa/conceptual/... Fondamentalement, MainMenu.xib crée
J'ai étaient confrontés au même type de problème: je n'allais pas appel à
- (void)windowDidLoad
. Après quelques recherches, j'ai trouvé mon erreur dans mon NSWindowController sous-classe j'ai déclaré window
comme de la propriété. J'ai enlevé des membres et appelé showWindow:
méthode pour obtenir la fenêtre avec succès.OriginalL'auteur Mike Hornblade | 2010-04-23
Vous devez vous connecter pour publier un commentaire.
Que vous essayez de créer l'instance de
NSWindowController
par l'instanciation d'une autre plume. Toutefois, lorsque vous instanciez un objet dans un fichier nib, il est initialisé par l'appel de-initWithCoder:
.-initWithCoder:
n'est pas désigné un initialiseur deNSWindowController
, de sorte que votre instance deNSWindowController
jamais fait charge sa plume.Au lieu de l'instanciation de votre
NSWindowController
exemple en le plaçant dans leMainMenu.xib
fichier dans Interface Builder, créer par programmation:Dans AppDelegate.h:
Dans AppDelegate.m:
Dans YourWindowController.m:
OriginalL'auteur
Il est parfaitement bien pour instancier la fenêtre contrôleur par l'intermédiaire d'une plume. Plutôt que d'utiliser
windowDidLoad
que votre crochet, dans ce cas, vous aurez envie d'utiliserawakeFromNib
.OriginalL'auteur
La fenêtre peut être chargé sur demande - essayer d'envoyer
window
à vous-même dans-init
. Voir la discussion de-[NSWindowController loadWindow]
dans la documentation pour plus d'info.OriginalL'auteur
si vous avez écrit
essayez plutôt
il fait la différence ! Bien sûr, la première ligne était une erreur...
OriginalL'auteur