J'essaie de montrer un nspanel comme une feuille. Je fais naïvement quelque chose sur ces lignes: Pour une raison quelconque qui me échappe, cela ne fonctionne pas. Lorsque cette partie du code est appelée, la feuille clignote momentanément (en raison du message Si quelqu'un peut me signaler où je peux trouver plus d'informations, cela serait très apprécié. P> P> Autoréleuillet code>). La feuille n'est jamais accrochée à la fenêtre. P>
3 Réponses :
Oui, vous devez posséder ce contrôleur aussi longtemps que vous le souhaitez de continuer à fonctionner. Vous ne pouvez pas simplement le créer, le permettez-y et de le laisser mourir - vous devez le tenir aussi longtemps que vous en avez besoin. P>
En supprimant le message Autoréleuillet empêche le panneau de disparaître, il n'est toujours pas accroché à la fenêtre ... Je suis vraiment perplexe par cela.
Il ne suffit pas de simplement ne pas l'autoriser. C'est juste une fuite. Vous devez posséder ce que vous avez créé et le relâcher lorsque vous en avez terminé (et seulement i> alors). En ce qui concerne l'accrochage du contrôleur sur la fenêtre, vous devez vous assurer que vous avez défini la classe du propriétaire du fichier, puis connectez la fenêtre code> de votre contrôleur code> à la fenêtre. Vous faites tous les deux ceux de IB.
Cela ressemble à un cas classique d'avoir vérifié la case "visible au lancement" pour le panneau dans IB. Tourner ça. P>
N'oubliez pas que si vous essayez de courir cela comme une feuille "modale" (c'est-à-dire, il reprend l'application jusqu'à ce que l'utilisateur le rejette), vous devez appuyer sur une nouvelle boucle d'exécution.
Ce que vous avez fait est montré la feuille, puis non enfoncé une nouvelle boucle, le système d'exploitation montre donc la feuille, voit qu'il n'y a aucune raison de le maintenir en marche et la ferme ainsi et reprend l'exécution sur la ligne suivante. : p>
i typiquement des feuilles de la manière suivante: p> puis, dans vos routines de bouton Accepter et / ou d'annulation: P> - (IBAction)continueButtonClicked:(id)sender
{
UNUSED(sender);
[[NSApplication sharedApplication] stopModal];
[createAccountWizardPanel orderOut: nil];
[[NSApplication sharedApplication] endSheet: createAccountWizardPanel
returnCode: NSOKButton];
}
Cette méthode est obsolète :(