Я пишу приложение для Mac OS X с помощью Xcode 6 и Objective C.Как показать окно после нажатия кнопки X
После запуска приложения и нажмите X, окно будет скрыто. Есть ли способ показать окно с нажатием на App-Symbol на доке (например, в Safari)?
Я пишу приложение для Mac OS X с помощью Xcode 6 и Objective C.Как показать окно после нажатия кнопки X
После запуска приложения и нажмите X, окно будет скрыто. Есть ли способ показать окно с нажатием на App-Symbol на доке (например, в Safari)?
При нажатии «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 будет иметь место, и фоновая работа будет отложена или просто ОС выполнит эту операцию в форме дозирования.
Когда пользователь нажимает кнопку «X» (или красную «Закрыть»), это фактически полностью закрывает окно и не скрывает его.
Чтобы снова открыть окно (при условии, что оно все еще в памяти и не выпущено благодаря ARC), вам необходимо сделать "showWindow
" on the window controller. И при нажатии на значок док-станции лучшим местом для захвата иконки док-станции может быть NSApplicationDelegate's "applicationDidBecomeActive:
" notification.
Первый комментарий - это не правда, потому что я все еще вижу значок приложения на доке. Почему он полностью закрывается и сохраняет значок приложения на доке после нажатия «X»? Ответ от walle84 действительно решает его – Vinh
Спасибо за отличный пример кода и хорошее объяснение. Он отлично работает, как я ожидал – Vinh