Снова отобразите окно после закрытия и настройки фокуса - PullRequest
0 голосов
/ 13 ноября 2011

У меня два коротких вопроса:

  1. Как можно открыть окно после его закрытия.
  2. Как установить фокус на открывающемся окне.

Было бы неплохо, если бы кто-нибудь мог мне помочь!

Вот исходный код, который у меня есть, но я не знаю, как это сделать:

метод, вызывающий WindowController:

- (IBAction)openPreferences:(id)sender 
{
[NSApp activateIgnoringOtherApps:YES];

if (NULL == preferences) 
{
    preferences = [[PreferencesController alloc] initWithWindowNibName:@"Preferences"];
}
[preferences showPreferenceWindow];
}

Это заголовок PreferencesController:

#import <Foundation/Foundation.h>

@interface PreferencesController : NSWindowController <NSWindowDelegate>
- (void)showPreferenceWindow;
@end

Это основной PreferencesController:

 #import "PreferencesController"

 @interface PreferencesController()
 @end

 @implementation PreferencesController

 - (void)windowWillClose:(NSNotification *)notification
 {

 }

 // display the preference window
 - (void)showPreferenceWindow
 {
     [self.window makeKeyAndOrderFront:NSApp];

     // TODO: window should be focused and if the user press the close button it should be displayed again
 }

 - (void) dealloc
 {
    [super dealloc];
 }

 @end

1 Ответ

3 голосов
/ 13 ноября 2011

NSWindow имеет этот удобный метод - (void)setReleasedWhenClosed:(BOOL)releasedWhenClosed. Установите это в NO, и вы можете открывать окно неограниченное количество раз. Что касается вашей основной проблемы: она должна уже работать над тем, чтобы сфокусировать ваше окно.

Но так как вы используете окно настроек: могу ли я предложить DBPrefsWindowController оно довольно старое, но оно все еще работает сегодня.

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