2012-08-17 13 views
5

Ho un'applicazione Cocoa basata su documenti che utilizza uno NSWindow secondario per una modalità di anteprima (con shouldCloseDocument impostato su NO).Previene il prompt di salvataggio quando si chiude NSWindow

Se il documento è sporca (editati senza salvare) e ho chiudere il secondario NSWindow, un "Vuoi salvare le modifiche apportate al documento" appare il prompt.

Come evitare questa richiesta sul secondario NSWindow?

+0

Che cosa succede se si imposta il documento della finestra secondaria a zero nel metodo delegato windowWillClose ? – cocoafan

+0

Idea interessante ma non funziona. 'windowWillClose' viene chiamato dopo che viene visualizzata la richiesta di salvataggio. – hpique

+0

E così anche 'windowShouldClose' di NSWindowDelegate e' close' di NSWindow. – hpique

risposta

0

Non sono riuscito a trovare un modo per farlo. Mi aspettavo di trovare un metodo NSWindowDelegate o NSWindow chiamato prima del prompt di salvataggio, ma nessuno dei candidati evidenti (windowWillClose,, windowShouldClose).

Come soluzione alternativa, invece di impostare NSWindowController.document Sto utilizzando una proprietà personalizzata per passare il documento. Con document impostato su NIL, il prompt di salvataggio non viene più visualizzato.

0

specificamente si può fare questo all'interno del vostro sottoclasse viewController: assicurarsi delegato è impostato dalla finestra alla classe di appartenenza:

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

............. etc....... 
Problemi correlati