Pregunta

Tengo un programa Mac OS X visible solo en la barra de estado que debe mostrar una ventana de preferencias. Tengo esta ibactación:

- (IBAction)showPreferences:(id)sender {
    [self.preferencesWindowController showWindow:self];
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
}

En ApplicationDidfinish Lauching tengo:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Load the app's preferences window (but does not display it)
    self.preferencesWindowController = [[PreferencesWindowController alloc] initWithWindowNibName:@"PreferencesWindowController"];

    [...]

}

El encabezado de la clase:

#import <Cocoa/Cocoa.h>
#import "AppPref.h"


@interface PreferencesWindowController : NSWindowController {
}

@end

El problema es: la ventana de preferencia aparece solo una vez. Cuando lo cierro, nunca más reaparecerá.

¿Cuál puede ser el problema?

¿Fue útil?

Solución

Tienes que cambiar las propiedades de la ventana para que no se destruya cuando esté cerrada. Puedes hacer esto en Interface Builder.

Como alternativa, recomiendo cargar la punta desde el -showPreferences: método. Cargando la punta en el -applicationDidFinishLaunching: El método ralentizará el tiempo de lanzamiento de su aplicación sin beneficio para el usuario o su código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top