Закрытие окна приложения (OSX) - PullRequest
2 голосов
/ 14 марта 2012

Как я могу закрыть все мои открытые окна в Mac?

В Windows мы используем EnumWindows(), а затем SendMessage(hwnd, WM_NCDESTROY, 0, 0) Это подход, который мы должны принять также в OSX, или это другой путь?

1 Ответ

1 голос
/ 14 марта 2012

Это зависит от того, используете ли вы для интерфейса Carbon или Cocoa.

Если вы используете Какао и Objective-C, это просто:

- (void)closeAllWindows {
    [[NSApp windows] makeObjectsPerformSelector:@selector(performClose:)
                                     withObject:nil];
}  

Что это в основном делает, так это запрашивает глобальный NSApplication объект для его массива -windows .

В качестве альтернативы вы можете указать -close вместо -performClose: , в зависимости от типа окон в вашем приложении. См. Документацию, чтобы определить, какой метод может быть более подходящим

Если вы используете Carbon и Carbon Event Manager, мне придется оставить это другим, поскольку я понятия не имею. ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...