所以,這裏是我的情況:如何正確處理Cocoa應用程序終止?
我正在開發一個非標準的基於文檔的應用程序,我想處理在任何文檔中仍存在未保存更改時終止終止的情況。
我的初步設想是:
- 用戶試圖退出應用程序(或者通過
"Quit XXXXX"
菜單項或通過單擊"X"
按鈕) - 是否有任何修改的文檔?
- 如果否:退出
- 如果是:通知用戶存在未修改的文檔。如果他想繼續,然後退出。否則取消終止。
所以,我決定這樣做的委託方式。
在我的應用程序代理,我已經實現了:
-windowToClose:
(觸發NSWindowWillCloseNotification
)applicationShouldTerminate:
applicationShouldTerminateAfterLastWindowClosed:
現在,這是我在想什麼。在applicationShouldTerminate:
方法:
- 返回
NSTerminateNow
如果沒有修改文件存在 - 返回
NSTerminateCancel
,如果有修改的文檔。在這種情況下,彈出警報片或類似的東西,如果用戶確認他想退出,然後再打一個[NSApp terminate:nil];
這是正確的方式去了解它?
有什麼建議嗎?
好主意;不過,這裏是我用於YES-NO警報表(http://snippet.mx/Ra8E)的代碼。我怎麼能這樣做,以便它在相同的功能內返回? – 2012-04-19 08:33:06