2012-08-24 97 views
6

當我從Xcode啓動OS X應用程序時,它看起來應該如此。關閉後窗口不會恢復

當我關閉窗口時,它會消失(正如您所期望的),並且該應用程序仍然在碼頭上顯示爲活動狀態。

太好了,應該是這樣。但是當我點擊底座激活窗口時,它不會顯示出來。

任何想法?

+0

你怎麼關閉呢?退出應用程序與隱藏或最小化? – ekims

回答

21

問題中沒有太多信息,但讓我推測該應用程序是單窗口應用程序(即不是基於NSDocument的應用程序)。

在這種情況下,一個典型的情況是用戶關閉窗口,並且應用程序繼續按照它應該與Dock中的圖標一起運行。

在這種情況下,用戶通常喜歡通過單擊Dock中的圖標激活應用程序時重新顯示窗口。

要獲得,你可以實現applicationShouldHandleReopen:hasVisibleWindows:如下:

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

    return YES; 
} 
+0

對於缺乏信息的問題感到抱歉..會給這個嘗試,讓你知道..歡呼 – theiOSDude

+1

只是門票謝謝@Monolo - 記住'釋放時關閉'選項在IB中否認會導致崩潰調用'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 
}