मेरे पास MyView
NSView
से विरासत में मिला है और इसमें आवृत्ति चर NSImage * image;
है। क्लास कार्यक्षमता दृश्य पर छवि खींचना है।एनएसवीव प्रारंभिकरण: -इनिट: बनाम -वेकफ्रॉमनिब:
हालांकि, -drawRect:
छवि उदाहरण में हमेशा समान nil
, अगर यह -init:
समारोह में नहीं nil
प्रारंभ किया गया था और अगर यह -awakeFromNib:
में प्रारंभ किया गया था। लॉग दोनों -init:
और -awakeFromNib:
कार्यों को केवल एक बार बुलाया जाता है।
क्या -awakeFromNib:
डिफ़ॉल्ट रूप से जीयूआई घटक पुन: प्रारंभ करें?
हालांकि कुछ मामलों में '-initWithFrame' [बिल्कुल भी नहीं कहा जाता है] (http://stackoverflow.com/questions/433539/initwithframe-not-called-but-awakefromnib-is)। – jlstrecker
केवल _one_ मामला है जब आपका कस्टम सबक्लास का 'initWithFrame:' बिल्कुल नहीं कहा जाएगा: जब इसे किसी अन्य 'NSView' subclass से प्राप्त होता है जो आईबी पैलेट (उदाहरण के लिए, 'NSImageView') में मौजूद होता है, और आप इसका उदाहरण बनाते हैं आइडेंटिटी इंस्पेक्टर में कक्षा को बदलकर अपने कस्टम सबक्लास। उस स्थिति में, ऐपकिट सबक्लास के 'initWithFrame: '_will_ को बुलाया जाएगा, और आपके कस्टम सबक्लास को' initWithCoder 'प्राप्त होगा:' जागने से पहले 'FNNN'। यदि आप आईबी में "कस्टम व्यू" ऑब्जेक्ट का उपयोग करके अपना व्यू इंस्टेंस बनाते हैं, तो आपके व्यू का 'initWithFrame:' वास्तव में कॉल किया जाता है। –