2012-10-26 61 views
1

如何防止我的應用程序中的其他窗口接收焦點?我想把一個加載窗口放在前面,讓它做它的事情,但我不希望用戶能夠與應用程序中的其他窗口進行交互。防止其他窗口在Cocoa中接收焦點

我可以簡單地隱藏應用程序中的其他窗口,但這讓用戶覺得他們的窗戶突然消失時感到有些不舒服。同時,我不能讓用戶在加載過程中繼續與其他窗口交互,因爲加載將更新每個窗口上的數據(會發生同步問題)。我可以添加額外的鎖定機制,但是我寧願不要這樣做,就像強制單個窗口保持頂部並保持焦點一樣簡單。

謝謝!

回答

1

查看模態窗口。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/UsingModalWindows.html

你可以在應用程序模態的方式整體窗口或面板來看, 使用應用程序的正常事件循環機制,而是限制 輸入模態窗口或面板。在動作 可以繼續進行之前,模態操作對於需要用戶注意的 窗口和麪板很有用。示例包括錯誤消息和警告,以及需要輸入的操作,例如打開的對話框或對話框,其中 適用於多個窗口。