我有一張工作表連接到我的主窗口。這是一個登錄表,在完成之前不應允許與應用程序進行任何交互(默認情況下爲模態)。但是,我希望用戶能夠終止該應用程序。 IE瀏覽器,他們意識到他們需要登錄,放棄,並希望關閉應用程序。默認行爲是播放NSBeep並繼續運行。我怎樣才能覆蓋這個?允許應用程序在工作表可見時終止
3
A
回答
0
如果您在顯示錶格後立即致電endSheet:
,它會顯示我正在查找的行爲。
[NSApp beginSheet:self._loginController.window
modalForWindow:self.window
modalDelegate:nil
didEndSelector:nil
contextInfo:NULL];
[NSApp endSheet:self._loginController.window];
這不會關閉該表,當你完成,你可以用[window orderOut:nil];
隱藏工作表。
1
聽起來像問題的根源在於你依靠工作表來防止與應用程序的其他部分進行交互。您在視圖中有效存儲應用程序狀態信息(登錄/未登錄),這不是一個好計劃。
表格應該允許用戶輸入他們的登錄信息,並且登錄表的控制器應該在輸入信息時更新應用程序的狀態。如果採取這種方法,應用程序將不允許用戶執行任何需要登錄才能完成登錄過程的任何事情,無論該表單是否在該表單中。
5
從10.6開始,您可以控制模式表是否應該阻止應用程序終止。這應該這樣做:
[myModalSheet setPreventsApplicationTerminationWhenModal:NO];
相關問題
- 1. Node-Promise with node-mysql不允許應用程序終止
- 2. 即使應用程序終止,ABAddressBookRegisterExternalChangeCallback也可以工作
- 3. 線程終止時變量可見性
- 4. 服務停止時,有許多應用程序打開工作
- 5. 在Winform應用程序中允許/阻止窗口進程
- 6. Android:SoundPool在應用程序終止後無法工作
- 7. System.Timers.Timer在終止其工作線程時終止嗎?
- 8. 退出時終止應用程序
- 9. 只允許工作時間預約表
- 10. Nginx的位置,允許在不終止
- 11. 用戶允許我的應用程序的許可權
- 12. 應用程序不終止
- 13. 終止應用程序
- 14. EnterpriseLibrary.Logging終止應用程序
- 15. 應用程序終止
- 16. 跟蹤允許最終用戶可見性的功能和錯誤的工具?
- 17. 允許在MVC Web應用程序
- 18. 允許在iPhone應用程序中
- 19. 允許用戶在VBA中等待期間終止進程
- 20. 在bash中顯示術語時終止終端應用程序
- 21. 當應用程序正在工作時有人更改系統時間時,Phonegap應用程序停止工作
- 22. 程序工作,然後終止
- 23. Android從終端終止應用程序
- 24. 當應用程序終止時,UILocalNotification將起作用
- 25. 在允許用戶繼續使用我的應用程序的同時允許用戶繼續下載作業
- 26. 允許/禁止使用global.asax事件訪問應用程序
- 27. 允許請求允許在運行時不工作
- 28. 如何禁止在寫入文件時終止應用程序
- 29. 防止在Amazon S3上盜鏈,同時允許移動應用程序
- 30. 可以終止的其他應用程序的列表
這根本不是問題。這並不是說與應用程序的其他部分進行交互會產生破壞性,而只會造成非生產性並可能造成混淆。 – 2011-03-19 14:24:45
好的。考慮在表上調用'-setPreventsApplicationTerminationWhenModal:NO',然後。 – Caleb 2011-03-19 17:32:16
我希望有一種方法可以將Caleb的評論標記爲已接受的修復程序。這正是我需要的功能。 (順便說一下,允許它的主要原因之一是,如果沒有它,你的應用程序將阻止關閉過程完成) – 2013-02-20 02:22:46