आप इसे NSWindowController
का उदाहरण किसी अन्य निब में तत्काल बनाकर बनाने का प्रयास कर रहे हैं। हालांकि, जब आप एक nib फ़ाइल में किसी ऑब्जेक्ट को तुरंत चालू करते हैं, तो इसे -initWithCoder:
पर कॉल करके प्रारंभ किया जाता है।
-initWithCoder:
NSWindowController
का नामित प्रारंभकर्ता नहीं है, इसलिए NSWindowController
का आपका उदाहरण वास्तव में कभी भी अपने निब को लोड नहीं करता है।
इसके बजाय इंटरफ़ेस बिल्डर में
MainMenu.xib
फ़ाइल में रखकर अपने
NSWindowController
उदाहरण instantiating की
, यह प्रोग्राम के रूप में बनाने के लिए:
AppDelegate.h में:
@class YourWindowController;
@interface AppDelegate : NSObject
{
YourWindowController* winController;
}
@end
AppDelegate.m में:
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
winController = [[YourWindowController alloc] init];
[winController showWindow:self];
}
- (void)dealloc
{
[winController release];
[super dealloc];
}
@end
में YourWindowController.m:
@implementation YourWindowController
- (id)init
{
self=[super initWithWindowNibName:@"YourWindowNibName"];
if(self)
{
//perform any initializations
}
return self;
}
@end
स्रोत
2010-04-23 03:54:16
आप कक्षा को कैसे शुरू कर रहे हैं? क्या आप '-initWithWindowNibName:' के सुपर के कार्यान्वयन को बुला रहे हैं? –
मेरा एनएसविंडो कंट्रोलर सबक्लास निब के भीतर तत्काल है, जैसे इस दस्तावेज़ के बारे में वार्ता: http://developer.apple.com/mac/library/documentation/cocoa/conceptual/ObjCTutorial/06Controller/06Controller.html#//apple_ref/doc/ uid/TP40000863-CH8-SW1 असल में, MainMenu.xib इसे बनाता है –
मुझे इसी तरह की समस्या का सामना करना पड़ा: मुझे '- (शून्य) विंडोडिडलोड 'पर कॉल नहीं मिल रहा था। कुछ खोदने के बाद मुझे अपने एनएसविंडो कंट्रोलर सबक्लास में मेरी गलती मिली, मैंने संपत्ति के रूप में 'खिड़की' घोषित कर दी है।मैंने उस सदस्य को हटा दिया और खिड़की को सफलतापूर्वक प्राप्त करने के लिए 'शोविंडो:' विधि कहा। – Raviprakash