2012-03-13 3 views
1

Как я могу закрыть все мои открытые окна в Mac?Закрытие окон приложения (OSX)

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

ответ

0

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

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

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

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

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

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

Смежные вопросы