2012-08-17 8 views
5

Ich habe eine dokumentbasierte Cocoa-App, die einen sekundären NSWindow für einen Vorschaumodus verwendet (mit shouldCloseDocument auf NO festgelegt).Sicherheitsabfrage beim Schließen von NSWindow verhindern

Wenn das Dokument verschmutzt ist (bearbeitet, ohne zu speichern) und ich schließe die sekundäre NSWindow, ein „Möchten Sie die Änderungen an dem Dokument speichern möchten“ Eingabeaufforderung angezeigt.

Wie kann ich diese Aufforderung auf der sekundären NSWindow vermeiden?

+0

Was passiert, wenn Sie setzen das Dokument des sekundären Fensters auf Null in windowWillClose Delegatmethode ? – cocoafan

+0

Interessante Idee, funktioniert aber nicht. 'windowWillClose' wird nach dem Speichern der Eingabeaufforderung aufgerufen. – hpique

+0

Und so ist 'windowShouldClose' von NSWindowDelegate und' close' von NSWindow. – hpique

Antwort

0

Ich konnte keinen Weg finden, dies zu tun. Ich erwartete, eine NSWindowDelegate oder NSWindow Methode zu finden, die vor der Speicheraufforderung aufgerufen wird, aber keiner der offensichtlichen Kandidaten (windowWillClose, close, performClose, windowShouldClose) ist.

Als Workaround, anstelle von NSWindowController.document Ich benutze eine benutzerdefinierte Eigenschaft, um das Dokument zu übergeben. Wenn document auf NIL eingestellt ist, wird die Speicheraufforderung nicht mehr angezeigt.

0

speziell können Sie dies in Ihrer Viewcontroller Unterklasse: stellen Sie sicher, Delegierter aus dem Fenster auf die Eigentümer-Klasse festgelegt:

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

............. etc....... 
Verwandte Themen