2012-03-08 60 views
1

我是使用Xcode 4.2.1編程Mac OS X Lion(10.7.3)的新手如何在OSX Lion上的Xcode中獲取可見窗口的列表?

我想獲取所有可見窗口的列表,然後隱藏或最小化它們。

到目前爲止,我有這樣的代碼:

NSArray *appList = [[NSWorkspace sharedWorkspace] runningApplications]; 
    for (id app in appList) { 
     for (id theWindow in app) { //How do I get list of windows from the app?? 
      if ([theWindow isVisible]) { 
       [theWindow orderOut:sender]; 
      } 
     } 
    } 

我知道這是不行的,但我如何獲得每個應用程序窗口的列表種難倒。

感謝

編輯:我發現叫ShowDesktop一個應用程序(見下文接受的答案),這我想要做什麼,這是模擬Windows PC上的顯示桌面功能。

編輯:2015年3月:找到了一個更好的解決方案:更好的觸摸工具(它是免費的)有一個「隱藏所有Windows」的快捷方式,就像Windows,它實際上最小化和隱藏所有打開的窗口(不像OSX默認的只是把它們從屏幕上移開)。您可以將其分配給任何鍵盤組合或鼠標移動...我已將其分配給「OPTION_KEY + Move_Mouse_Into_Lower_Left_Corner」。

+0

你知道,OS X有一個顯示桌面功能內置的,不是嗎?我相信這是Cmd- 2012-03-23 15:25:41

+0

不一樣的東西......它只是將所有東西都移動到邊緣,這讓我覺得很討厭。 – jsherk 2012-03-24 03:01:01

回答

5
CFArrayRef listOfWindows = CGWindowListCopyWindowInfo(kCGWindowListExcludeDesktopElements | kCGWindowListOptionOnScreenOnly,kCGNullWindowID); 
相關問題