2012-08-24 18 views
6

OS XアプリケーションをXcodeから起動すると、表示されるようになります。ウィンドウが閉じた後に復元されない

私がウィンドウを閉じると、それは消えて(期待通り)、アプリケーションは引き続きアクティブに表示されます。

偉大な、そうでなければならない方法です。しかし、ドックをクリックしてウィンドウをアクティブにすると、ウィンドウが表示されません。

アイデア?

+0

次のようにそれを得るために

、あなたはapplicationShouldHandleReopen:hasVisibleWindows:を実装することができますか?アプリを終了するか隠すか最小化するか? – ekims

答えて

21

質問に多くの情報はありませんが、アプリが単一ウィンドウアプリケーション(つまり、NSDocumentではなく)であると仮定します。

このシナリオの典型的な状況は、ユーザーがウィンドウを閉じ、applictionが想定どおりにDock内のアイコンで実行し続けることです。

このような状況では、通常、Dock内のアイコンをクリックしてアプリをアクティブにすると、ウィンドウが再び表示されるようになります。 SWIFT用

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

    return YES; 
} 
+0

質問に情報がないと申し訳ありません..これを試してみましょう。歓声 – theiOSDude

+1

ちょうどチケットのおかげで@モノロ - '閉鎖時にリリース'のオプションがIBでuntickedであることを覚えていれば、クラッシュが発生します'makeKeyAndOrderFront' – theiOSDude

3

を:あなたはそれを閉じているか

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 
} 
関連する問題