मैं कोको एप्लिकेशन बना रहा हूं और विंडो नियंत्रकों का उपयोग करने के बारे में कोई प्रश्न पूछ रहा हूं। विचार यह है कि यदि उपयोगकर्ता मेनू बार से नया का चयन करता है, तो MyWindowController का एक उदाहरण जो NSWindowController का उप-वर्ग है और MyWindow.xib से एक नई विंडो प्रदर्शित होती है।विंडो बंद होने पर NSWindowController को रिलीज़ करें
मैं आवेदन प्रतिनिधि में कार्रवाई को संभालने में कामयाब रहा हूं। कुछ ऐसा करने के बाद मैंने जो कुछ देखा है, उससे निम्नलिखित किया जा सकता है। एक बार खिड़की प्रदर्शित होने के बाद मेरे पास विंडो नियंत्रक को पॉइंटर स्टोर करने का कोई कारण नहीं है और जब से मैंने इसे आवंटित किया है, तो भी मैं खिड़की को प्रदर्शित करने से पहले इसे स्वत: छोड़ देता हूं।
[[[[MyWindowController alloc] init] autorelease] showWindow:self];
के बाद से खिड़की उसके तुरंत बाद जारी किया गया है खिड़की संक्षेप में स्क्रीन पर प्रदर्शित करेगा और उसके बाद चले जाओ। मुझे एक समाधान मिला है जहां मैं -शोविंडो में विंडो नियंत्रक को बनाए रखता हूं: विधि और विंडो को एक बार प्राप्त करने के बाद इसे रिलीज़ करने दें।
- (IBAction)showWindow:(id)sender
{
[self retain];
[[NSNotificationCenter defaultCenter] addObserverForName:NSWindowWillCloseNotification
object:self.window
queue:nil
usingBlock:^(NSNotification *note) {
[self release];
}];
[super showWindow:sender];
}
वहाँ यह करने के लिए एक बेहतर तरीका है? मैंने ऐप्पल प्रलेखन की खोज की है और उपयोग करने के लिए प्रथाओं पर कुछ भी नहीं मिला है। ऐसा लगता है कि यह कुछ बुनियादी है जो इसे कवर करना चाहिए, इसलिए शायद मैं गलत शब्दों से खोज रहा हूं।