2015-02-26 28 views
2

如何在用戶按下退出鍵時設置NSWindows(在OS X上)關閉?支持關閉NSWindow,通過退出鍵提交爲工作表

  • 窗口經由 presentingWindow.beginSheet(mySheetWindow, completionHandler:nil)
  • 它具有關閉按鈕(通過IB)具有等效鍵設置爲「逃離」呈現爲片材。此關閉按鈕已經正常工作
  • 按下轉義會導致系統音頻錯誤輸出('Funk' - 聲音),但不記錄,也不會關閉窗口。

回答

3

您必須添加一個常規按鈕並將其放置在窗口的左上角。您的按鈕寬度和alpha設置爲0。

enter image description hereenter image description here

點擊等效鍵字段,然後按ESC。它會顯示ESC鍵圖標

enter image description here

然後創建你的隱藏按鈕如下IBAction爲:

@IBAction func closeWindowAction(sender: AnyObject) { 

    window.close() 
} 

確保你有你的窗口插座連接到正確的窗口:

@IBOutlet weak var window: NSWindow! 
+0

https://www.dropbox.com/s/asq1g42cuur2ogr/windowsSample.zip?dl=0 –

+0

感謝您的示例。不幸的是,這並沒有幫助,因爲該窗口不是以表格形式呈現的。這只是主窗口。主窗口應該使用'beginSheet(newWindow,completionHandler:nil)'提供另一個窗口,並且這個newWindow應該可以通過換碼鍵關閉。 – benrudhart

+0

我自己找到了解決方案...在我的情況下,我需要繼承NSWindow,覆蓋** canBecomeKeyWindow **並返回true。否則它不起作用! – benrudhart