Как получить список видимых окон в Xcode на OSX Lion? - PullRequest
1 голос
/ 08 марта 2012

Я новичок в программировании для Mac OS X Lion (10.7.3) с использованием Xcode 4.2.1

Я хочу получить список всех видимых окон, а затем либо скрыть, либо свернуть их.

Пока у меня есть этот код:

    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.Лучшее решение для этого: Better Touch Tool (это бесплатно) имеет ярлык «Скрыть все Windows», который работает как Windows, где он фактически минимизирует и скрывает все открытые окна (в отличие от OSX по умолчанию просто убирает их с экрана).Вы можете назначить его любому сочетанию клавиш или движению мыши ... Я назначил его "OPTION_KEY + Move_Mouse_Into_Lower_Left_Corner".

Ответы [ 2 ]

6 голосов
/ 22 марта 2012
CFArrayRef listOfWindows = CGWindowListCopyWindowInfo(kCGWindowListExcludeDesktopElements | kCGWindowListOptionOnScreenOnly,kCGNullWindowID );
1 голос
...