2016-03-05 53 views
-1

我是對象c的新手,我正在用對象c編寫Mac應用程序。我只是發現,默認情況下,關閉窗口按鈕(左側的綠色x按鈕)僅用於關閉窗口框架。那麼如何讓它實際上在點擊時退出程序? (我知道在Java swing JFrame中,有一種稱爲默認關閉選項的方法。)順便說一句,我使用NSWindow作爲我的主UI。如何使窗口關閉按鈕執行退出對象c中的程序?

+0

這是不明智的。在最後一個窗口關閉時,Mac OS X應用程序不應退出,只應在用戶從「應用程序」菜單中選擇「退出」項後才終止該進程。 – Dai

回答

2

您的應用程序委託人應該執行applicationShouldTerminateAfterLastWindowClosed並返回所需的響應。參見:

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSApplicationDelegate_Protocol/

+0

那麼如何真正實現它呢?我將applicationShouldTerminateAfterLastWindowClosed方法添加到我的NSWindow.m中,但它根本不起作用。 – GiddensA

+0

你需要創建一個實現'NSApplicationDelegate'的對象。該對象需要實現你的'applicationShouldTerminateAfterLastWindowClosed'版本。然後,通過'setDelegate'將這個對象的實例設置爲NSApp的委託。以https://github.com/fzwoch/mincer/blob/2d3b3a1b5249c21a1e54abe0bd96da6892e0c2fc/mincer.m爲例。對象的問題是'AppDelegate'。 –

相關問題