मैंने एक्सकोड टेम्पलेट का उपयोग करके एक नया खाली मानक एप्लिकेशन बनाया है। मेनमेनू.एक्सिब में विंडो को हटा दिया और मैंने एक xib के साथ एक नया अनुकूलित NSWindowController उपclass बनाया।मानक एप्लिकेशन में विंडो दिखाने के लिए NSWindowController का उपयोग कैसे करें?
उन्हें "WYSunFlowerWindowController.h" और "WYSunFlowerWindowController.m" नाम दिया गया था।
और मैं तो संलग्न नीचे की तरह init समारोह:
- (id)init
{
NSLog(@"init()");
return [super initWithWindowNibName:@"WYSunFlowerWindowController" owner:self];
}
और मेरे WYAppDelegate.m फ़ाइल नीचे की तरह है:
static WYSunFlowerMainWindowController* windowController = nil;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
if (windowController == nil) {
windowController = [[WYSunFlowerMainWindowController alloc] init];
}
[[windowController window] makeKeyAndOrderFront:windowController];
}
और मैं समस्या है, उस खिड़की नहीं दिखा सकते हैं ऐप लॉन्च करने के बाद यह स्वयं। कोई मुझे बता सकता है क्यों? क्या मेरे कोड में कुछ गलत है?
मैं उद्देश्य-सी और कोको में नौसिखिया हूं। तो मुझे लगता है कि मैं शायद एक मूर्खतापूर्ण गलती करूँगा कि मैं इसे अपने आप से नहीं समझ सकता।
अद्यतन:
यहां मेरा प्रोजेक्ट स्रोत है। दलीलों एक नजर है और मेरी मदद करो यह पता लगाने की मेरी गलती क्या है।
https://dl.dropbox.com/u/3193707/SunFlower.zip
क्या आपके पास एआरसी सक्षम है? मैंने पाया है कि एआरसी के साथ विंडो नियंत्रक को तब तक हटा दिया जाता है जब तक कि मैं इसे ऐप प्रतिनिधि की संपत्ति नहीं बना देता (मुझे यकीन है कि ऐसा करने के अन्य तरीके हैं)। – sosborn
मैं एआरसी का उपयोग कर रहा हूं। मैं विंडो नियंत्रक को AppDelegate क्लास के एक स्थिर क्षेत्र के रूप में बना देता हूं। मुझे लगता है कि ऐप समाप्त होने तक इसे हटाया नहीं जाएगा। – morphinewan