2014-09-26 2 views

ответ

1

При нажатии «X» или закрытии точки окно закрывается, и если это корневое окно, ваше приложение будет закрыто. Так что если вы хотите, чтобы скрыть на кнопку «X» или близкую точку, то вы можете использовать ниже: -

//Called when clicked close option on window 
- (BOOL)applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication 
{ 
    [[NSApplication sharedApplication] hide:self]; 
    return NO; 
} 

//Called when you tap app icon on dock. 
-(BOOL)applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag{ 
    [[self.mainWindowController window] makeKeyAndOrderFront:self]; 
    return YES; 
} 

Но помните, когда мы скрыть OS X приложение затем по истечении определенного времени ОС будет спать, что приложение, называемое NSAppNap будет иметь место, и фоновая работа будет отложена или просто ОС выполнит эту операцию в форме дозирования.

+0

Спасибо за отличный пример кода и хорошее объяснение. Он отлично работает, как я ожидал – Vinh

1

Когда пользователь нажимает кнопку «X» (или красную «Закрыть»), это фактически полностью закрывает окно и не скрывает его.

Чтобы снова открыть окно (при условии, что оно все еще в памяти и не выпущено благодаря ARC), вам необходимо сделать "showWindow" on the window controller. И при нажатии на значок док-станции лучшим местом для захвата иконки док-станции может быть NSApplicationDelegate's "applicationDidBecomeActive:" notification.

+0

Первый комментарий - это не правда, потому что я все еще вижу значок приложения на доке. Почему он полностью закрывается и сохраняет значок приложения на доке после нажатия «X»? Ответ от walle84 действительно решает его – Vinh

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