Закрытие приложения Mac (щелчок красным крестом сверху) и повторное открытие, нажав значок док-станции

Когда я закрываю приложение для Mac (нажав кнопку красного креста на верхней панели окна), значок приложения остается в доке внизу. Теперь это нормальное поведение. Когда пользователь снова нажимает на него, он не запускает приложение, если пользователь не завершает работу приложения и не возобновляет его снова.

Аналогичным примером в Mac OS X является "Монитор активности". Вы можете закрыть приложение, нажав на красную кнопку перекрестки вверху, но значок док-станции остается там. Пользователь может повторно открыть его, щелкнув значок док-станции.

Как я могу достичь этого в своем приложении?

Ответ 1

Если вы все еще обеспокоены тем, как открыть окно, которое вы закрыли, используйте этот метод:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag {

[window makeKeyAndOrderFront:self];

return YES;
}

Вы можете использовать это для обработки кликов на значке приложений в доке.

Для получения дополнительной информации ознакомьтесь с ссылкой на протокол NSApplicationDelegate.

Вот документация:

http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html

Надеюсь, это поможет!

Ответ 2

Внедрить метод

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{ 
return NO; 
}

в делетете приложения

Ваше приложение будет зависать после закрытия окна, а затем, если вы реализуете

- (void)applicationDidBecomeActive:(NSNotification *)aNotification
{
//dock icon has just been clicked , or cmd-tabbed into
}

в делегате приложения

Вы можете делать что-то, когда нажимается значок, например, открывать новое или старое окно, если вам нужно

Смотрите http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html для других соответствующих событий приложения