2011-07-12 10 views
5

NSTextField içeren bir NSWindow ile oldukça basit bir uygulamanın (henüz nesnel C'ye değil) başındayım. AppDelegate pencere ve metin alanına ve daha sonra .m dosyasında Interface Builder bağlanır NSTextField ayarlanmayacakStringValue

NSWindow *window; 
NSTextField *userIDText; 

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

:

@synthesize userIDText; 

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

(Ben de denedim diğer şeyler daha appdelegate.h bu vardır @ "kullanıcı" dize olarak) Günlüğü yalnızca göster (null) ve metin alanı değişmez. Neyi yanlış yapıyorum? Şu an yaklaşık 5 saat boyunca internette araştırıyorum ve açıkçası gerçekten çok basit bir şey özledim.

+2

priziniz nedir? userIDText'in null –

+0

olmadığından emin olmak için bir kesme noktası belirledim. Bunu daha önce yaptım ve sadece "Interface Builder'a bağladım dediğim gibi" yazmak istedim, ama sonra kontrol ettim ve değildi. Belki ilk etapta yanlış bir şey yaptım ve düzeltmeye çalışırken tekrar prizleri kaldırdım. Doğru yönde bana beni işaret etmek için thx :) – Andreas

cevap

2

Pencereniz yüklenmeden önce applicationDidFinishLaunching10 yönteminiz çağrılmaktadır. Bu nedenle, NSLog(@"UserIDTextString: %@", [userIDText stringValue]); null yazdırır ve metin alanının değerini ayarlayamazsınız. awakeFromNib yöntemini kullanmayı deneyin.

+2

Uygulamanın delegesinin, -applicationDidFinishLaunching'i alıyorsa, bu pencere hem uygulama hem de uygulama temsilcisinin örneğini aldığını varsayarak, bu '-applicationDidFinishLaunching:' iletisi ana nib dosyasında bulunur: 'message, yani nib dosyası * zaten * yüklenmiş olmalıdır. Başka bir deyişle, '-awakeFromNib' önce gönderilir, sonra' -applicationWillFinishLaunching: ', sonra' -applicationDidFinishLaunching: '. – NSGod

+0

NSGod'ın dediği gibi, awakeFromNib ile çalışmıyorum (denedim). – Andreas

1

Sorunu aynı sorundan buldum. Sorun, önceden oluşturulmuş "MainMenu.xib" düğmelerinin ve öğelerin bulunduğu bir pencere oluşturursanız, her şeyi "Dosya Sahibi" ne değil, soldaki ayrı olarak oluşturulan "Uygulama Temsilcisi" nesnesine bağlamazsınız.

Sorunu zaten çözdüğünüze eminim. Aynı sorun yaşayan başka bir kişi için yararlı olabileceğini düşündüm.

Saygılarımızla!