2011-07-12 15 views
5

मैं एक एनएसडब्ल्यूंडोफ युक्त एनएसटीक्स्टफाल्ड युक्त एक साधारण सरल ऐप (वास्तव में अभी तक उद्देश्य सी में नहीं) की शुरुआत में हूं।NSTextField सेट नहीं करेगा स्ट्रिंगवैल्यू

NSWindow *window; 
NSTextField *userIDText; 

@property (nonatomic, retain) IBOutlet NSWindow *window; 
@property (nonatomic, retain) IBOutlet NSButton *nextButton; 
@property (nonatomic, retain) IBOutlet NSTextField *userIDText; 

AppDelegate खिड़की और पाठ क्षेत्र के लिए और फिर .m फ़ाइल में इंटरफेस बिल्डर में जुड़ा हुआ है:

@synthesize userIDText; 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [userIDText setStringValue:@"user"]; 
    NSLog(@"UserIDTextString: %@", [userIDText stringValue]); 

(मैं भी करने की कोशिश की अन्य बातों से appdelegate.h इस है स्ट्रिंग के रूप में @ "उपयोगकर्ता") लॉग केवल दिखाता है (शून्य) और टेक्स्ट फ़ील्ड नहीं बदला जाता है। मैं क्या गलत कर रहा हूं? मैं अब लगभग 5h के लिए internets खोजता हूं और यह स्पष्ट रूप से वास्तव में कुछ सचमुच सरल है।

+2

आपका आउटलेट सेट है? यह सुनिश्चित करने के लिए ब्रेकपॉइंट सेट करें कि उपयोगकर्ता आईडीटेक्स्ट शून्य नहीं है –

+0

मैंने पहले ऐसा किया था और बस "निश्चित रूप से लिखा था, जैसा कि मैंने उन्हें इंटरफेस बिल्डर में जोड़ा था" लिखना चाहता था, लेकिन फिर मैंने जांच की और यह नहीं था। हो सकता है कि मैंने पहले स्थान पर कुछ और गलत किया और फिर इसे ठीक करने का प्रयास करते समय मैं आउटलेट को दोबारा परेशान करता हूं। सही दिशा में मुझे संकेत देने के लिए Thx :) – Andreas

उत्तर

2

आपकी applicationDidFinishLaunching विंडो को लोड होने से पहले विधि कहा जाता है। Thats क्यों NSLog(@"UserIDTextString: %@", [userIDText stringValue]); प्रिंट करता है और आप टेक्स्टफील्ड का मान सेट नहीं कर सकते हैं। awakeFromNib विधि का उपयोग करने का प्रयास करें।

+2

खिड़की और आवेदन प्रतिनिधि के उदाहरण दोनों को मानते हुए यह '-प्लिकेशंसडिफफिशिश लॉन्चिंग:' संदेश मुख्य निब फ़ाइल में है, यदि ऐप प्रतिनिधि को '-प्लिकेशंसडिडफिनिश लॉन्चिंग प्राप्त हो रहा है: 'संदेश, इसका मतलब है कि nib फ़ाइल * पहले से ही लोड होनी चाहिए। दूसरे शब्दों में, '-awakeFromNib' पहले भेजा जाता है, फिर' -प्लिकेशंसविलफिशिश लॉन्चिंग: ', फिर' -प्लिकेशंसडिफफिशिश लॉन्चिंग: '। – NSGod

+0

जैसा कि एनएसजीओडी कहते हैं, यह जागने के साथ काम नहीं करता है FromNib (मैंने कोशिश की)। – Andreas

1

बस आपके प्रश्न को मिला क्योंकि मुझे एक ही समस्या थी। मुद्दा यह था कि यदि आप "MainMenu.xib" में बटन और सामान के साथ एक विंडो बनाते हैं, तो आप सबकुछ "फ़ाइल के स्वामी" से कनेक्ट नहीं करते हैं, लेकिन बाईं तरफ अलग से उत्पन्न "ऐप प्रतिनिधि" ऑब्जेक्ट से कनेक्ट नहीं करते हैं।

मुझे पूरा यकीन है कि आपने पहले से ही इस मुद्दे को ठीक कर दिया है। सोचा कि यह किसी और समस्या के लिए सहायक हो सकता है।

सर्वश्रेष्ठ संबंध!

संबंधित मुद्दे