2010-03-26 17 views

回答

4

我相信你可以在CocoaDev找到一個可能的答案 - DontExposeMe。要非常小心地使用未記錄的方法,因爲這樣做可能會消失或更改,這可能會導致應用程序出現意外行爲。

早在2004年,有人在Apple的Carbon Development郵件列表和Eric Sc​​hlegel(適用於蘋果公司)responded上提出這個問題。基本上,這個消息並不是很好,並建議這隻適用於自助終端機器,您可以在其中適當地設置系統偏好設置。他還提到這是一個已知的bug - rdar:// 3499719。

不幸的是,這似乎是你現在可能不應該嘗試去做的事情。我肯定不會意識到,如果某些應用程序開始搞亂我的系統首選項,就像Marcel指出的那篇文章中提到的那樣,然後由於它崩潰或者其他原因而繼續使用它們。

所以,我會建議前往bugreport.apple.com並提交自己的錯誤。它確實有所作爲,因爲Apple使用類似錯誤報告的頻率來幫助判斷他們是否應該做或修復某些內容。請確保包含Eric S.回覆的URL和他提到的錯誤編號。

+0

謝謝! 我的應用程序以全屏模式運行時,用戶無法訪問活動屏幕邊角,我解決了其中一個問題。 – e40pud 2010-03-26 21:00:52

1

閱讀this article瞭解如何以編程方式禁用某些osx功能的提示。這是一種解決方法(因爲它只是刪除熱鍵),但它應該適合您的需求。

+0

我的應用程序以全屏模式運行,我應該禁用臨時(當應用程序正在運行時)公開。 我使用SetSystemUIMode來隱藏Dock和菜單欄。我需要一些相同的可能性來禁用Expose。 – e40pud 2010-03-26 09:04:10

+0

+1正準確地表明瞭這一點。 Pro Tools是令人難以置信的懶惰,只是告訴你自己禁用某些熱鍵! – 2010-03-26 09:09:45

+1

這是暴雪在其遊戲AFAIK中採用的方法,但需要警告 - 在魔獸世界裏它真的很煩人地搞砸了很長一段時間。那時候,我寧願不那麼樂於助人。 – Chuck 2010-03-26 20:03:04

0

如果你正在尋找的是讓你的應用程序,揭露UNAFFECTED,只需設置您的窗口收集行爲NSWindowCollectionBehaviorStationary。即

[[[[NSApplication sharedApplication] delegate] window] setCollectionBehavior:NSWindowCollectionBehaviorStationary]; 

您的全屏應用程序不會參與Expose。