2009-05-05 3 views
3

J'ai une NIB avec deux objets NSWindow. La classe de contrôleur a deux IBOutlets, un pour chaque NSWindow (windowLogin et windowMain).Masquer une fenêtre dans le cacao de awakeFromNib

Je veux seulement qu'une des fenêtres soit visible au lancement. Insdide awakeFromNib J'utilise:

[windowMain orderOut:self]; 

qui n'a aucun effet. Cependant, si j'essaye:

[windowMain setTitle:@"Renamed Title"]; 

Cela fonctionne comme prévu. Pensées?

Répondre

10

Recherchez la propriété "Visible au démarrage" dans l'inspecteur d'attributs de la fenêtre dans Interface Builder.

+0

Je puis utilisé [windowMain makeKeyAndOrderFront: auto] au besoin. – mattdwen

+0

Cependant, c'est un signe certain d'un design faible. Vous trouverez généralement à long terme qu'avoir une fenêtre par plume est une meilleure idée. Créez des sous-classes NSWindowController dédiées pour chaque fenêtre/plume et faites-les charger au besoin. –

+1

@MikeAbdullah Bien que généralement vrai, votre conseil loin d'un signe «sûr». :-) Pour tout ce que nous savons, l'application OP est une application très petite et simple avec seulement deux fenêtres. Dans ce cas précis, les avantages habituels de l'utilisation de pointes séparées (performance et maintenabilité) sont en réalité affectés négativement, en particulier si la fenêtre secondaire est susceptible d'être utilisée dans une session. Même si la fenêtre secondaire est rarement chargée, est-ce que l'enregistrement d'une milliseconde par l'utilisateur au moment du lancement vaut la peine de rendre votre application plus compliquée à gérer? –

2

Sinon, dans ApplicationDidFinishLoading, vous pouvez appeler [fenêtre setIsVisible: NO]

Questions connexes