2012-08-17 32 views
5

बंद करते समय प्रोजेक्ट को सहेजने से रोकें मेरे पास एक दस्तावेज़-आधारित कोको ऐप है जो पूर्वावलोकन मोड के लिए द्वितीयक NSWindow का उपयोग करता है (shouldCloseDocumentNO पर सेट)।NSWindow

तो दस्तावेज़ गंदा है (बिना सहेजे संपादित) और मैं माध्यमिक NSWindow बंद करते हैं, एक संकेत दिखाई "आप दस्तावेज़ में किए गए परिवर्तनों को बचाने के लिए करना चाहते हैं"।

मैं इस संकेत से द्वितीयक NSWindow पर कैसे बच सकता हूं?

+0

क्या आप windowWillClose प्रतिनिधि विधि में नहीं के बराबर करने के लिए माध्यमिक विंडो के दस्तावेज़ सेट करते हैं ? – cocoafan

+0

दिलचस्प विचार लेकिन काम नहीं करता है। सेव प्रॉम्प्ट प्रकट होने के बाद 'windowWillClose' को कॉल किया जाता है। – hpique

+0

और एनएसविंडो डिलीगेट के 'विंडोशॉटक्लोस' और एनएसविंडो के 'क्लोज़' हैं। – hpique

उत्तर

0

मुझे ऐसा करने का कोई तरीका नहीं मिला। मैं एक NSWindowDelegate या NSWindow विधि से पहले शीघ्र बचाने लेकिन स्पष्ट उम्मीदवारों (windowWillClose, close, performClose, windowShouldClose) में से कोई भी कर रहे हैं कहा जाता है खोजने के लिए उम्मीद।

एक कामकाज के रूप में, NSWindowController.document सेट करने के बजाय मैं दस्तावेज़ पास करने के लिए एक कस्टम प्रॉपर्टी का उपयोग कर रहा हूं। documentNIL पर सेट के साथ, सहेजें प्रॉम्प्ट अब और नहीं दिखाया गया है।

0

विशेष रूप से आप अपने ViewController उपवर्ग के अंदर ऐसा कर सकते हैं: सुनिश्चित करें कि प्रतिनिधि मालिक वर्ग के लिए खिड़की से सेट किया गया है:

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

............. etc.......