2012-08-24 3 views
6

Lorsque je lance mon application OS X à partir de Xcode, elle apparaît comme elle devrait l'être. Lorsque je ferme la fenêtre, elle disparaît (comme vous vous y attendiez) et l'application semble toujours active sur le dock.La fenêtre ne sera pas restaurée après sa fermeture

Super, c'est comme ça que ça devrait être. Mais quand je clique sur le dock pour activer la fenêtre, il n'apparaît pas.

Des idées?

+0

comment allez-vous la fermer? quitter l'application vs cacher ou minimiser? – ekims

Répondre

21

Il n'y a pas beaucoup d'informations dans la question, mais permettez-moi de supposer que l'application est une application à fenêtre unique (c'est-à-dire, pas NSDocument -based).

Une situation typique dans ce scénario est que l'utilisateur ferme la fenêtre, et l'application continue à fonctionner avec l'icône dans le Dock comme il est censé le faire.

Dans cette situation, l'utilisateur souhaite normalement que la fenêtre réapparaisse lorsque l'application est activée en cliquant sur l'icône dans le Dock.

Pour obtenir cela, vous pouvez mettre en œuvre applicationShouldHandleReopen:hasVisibleWindows: comme suit:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)visibleWindows 
{ 
    if (visibleWindows) { 
     [self.window orderFront:self]; 
    } 
    else { 
     [self.window makeKeyAndOrderFront:self]; 
    } 

    return YES; 
} 
+0

désolé pour le manque d'informations dans la question .. va essayer et vous faire savoir .. acclamations – theiOSDude

+1

juste le ticket merci @ Monolo - se souvenir de l'option «Release when closed» est décoché dans IB sinon provoquera un appel d'accident 'makeKeyAndOrderFront' – theiOSDude

3

pour rapide:

func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { 
    if let window = sender.windows.first { 
     if flag { 
      window.orderFront(nil) 
     } else { 
      window.makeKeyAndOrderFront(nil) 
     } 
    } 

    return true 
} 
Questions connexes