Mac OS X Showwindow Problema: NSWindow aparece solo una vez
-
27-10-2019 - |
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?
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