2014-12-02 28 views
3

我試圖實現窗口切換(我在Objective-C中做了很多次),但現在在Swift中。它接縫錯誤地使用了NSWindowOcclusionState.Visible,但我確實看不到我的問題。在初始窗口創建後,只調用w.makeKeyAndOrderFront(self)行。如何在Swift中使用NSWindowOcclusionState.Visible

有什麼建議嗎?

var fileArchiveListWindow: NSWindow? = nil 

@IBAction func tougleFileArchiveList(sender: NSMenuItem) { 
    if let w = fileArchiveListWindow { 
     if w.occlusionState == NSWindowOcclusionState.Visible { 
      w.orderOut(self) 
     } 
     else { 
      w.makeKeyAndOrderFront(self) 
     } 
    } 
    else { 
     let sb = NSStoryboard(name: "FileArchiveOverview",bundle: nil) 
     let controller: FileArchiveOverviewWindowController = sb?.instantiateControllerWithIdentifier("FileArchiveOverviewController") as FileArchiveOverviewWindowController 
     fileArchiveListWindow = controller.window 
     fileArchiveListWindow?.makeKeyAndOrderFront(self) 
    } 
} 

回答

1

老問題,但我只是遇到了同樣的問題。檢查occlusionState在斯威夫特使用AND二進制運算符做不同的一點:

if (window.occlusionState & NSWindowOcclusionState.Visible != nil) { 
    // visible 
} 
else { 
    // not visible 
} 
+0

在斯威夫特2我得到:找不到「和」接受提供的參數過載 – 2015-06-19 07:09:39