2012-08-17 14 views
5

Tengo una aplicación de Cocoa basada en documentos que utiliza un NSWindow secundario para un modo de vista previa (con shouldCloseDocument establecido en NO).Prevenir la solicitud de guardado al cerrar NSWindow

Si el documento está sucio (editado sin guardar) y cerrar la secundaria NSWindow, un "¿Desea guardar los cambios realizados en el documento" aparecerá el mensaje.

¿Cómo puedo evitar este aviso en el NSWindow secundario?

+0

Lo que si se establece el documento de la ventana secundaria a cero en el método delegado windowWillClose ? – cocoafan

+0

Una idea interesante pero no funciona. 'windowWillClose' se llama después de que aparezca el mensaje de guardar. – hpique

+0

Y también lo es 'windowShouldClose' de NSWindowDelegate y' close' de NSWindow. – hpique

Respuesta

0

No he podido encontrar la manera de hacerlo. Esperaba encontrar un método NSWindowDelegate o NSWindow llamado antes del mensaje de guardar pero ninguno de los candidatos obvios (windowWillClose, close, performClose, windowShouldClose) son.

Como una solución alternativa, en lugar de establecer NSWindowController.document estoy usando una propiedad personalizada para pasar el documento. Con document establecido en NIL, el mensaje de guardar ya no se muestra.

0

específicamente se puede hacer esto dentro de la subclase viewController: asegúrese delegado se establece desde la ventana de la clase dueño:

//------------------------------------------------------- 
- (void)windowControllerDidLoadNib:(NSWindowController *)aController 
{ 
NSLog (@"windowControllerDidLoadNib"); 
    aController.document = nil; 
    [super windowControllerDidLoadNib:aController]; 

............. etc....... 
Cuestiones relacionadas