ボタンをクリックしたときにポップアップウィンドウを作成するアプリケーションがあります。ポップアップウィンドウはnibファイルからロードされます。そして、ボタンがクリックされ、ウィンドウがうまくポップアップします。しかし、awakeFromNibメソッドは2回呼び出されます。ここにコードがあります。NSWindowController awakeFromNibが2回呼び出されています
アプリケーションの委任:
...
-(IBAction)myButton:(id)sender{
printf("[settings]: button pressed\n");
Config_SelectorSetup *selectorSetup = [[Config_SelectorSetup alloc] initWithWindowNibName:@"Config_SelectorSetup"];
printf("about to load\n");
[[selectorSetup window] makeKeyAndOrderFront:sender];
}
Config_SelectorSetup.m
- (id) initWithWindowNibName:(NSString *)windowNibName{
printf("[initWithWindowNibName]\n");
if(self = [super initWithWindowNibName:windowNibName]){
...
}
return self;
}
- (void)awakeFromNib{
printf("[awakeFromNib]\n");
[self startScreen];
}
そして、ここでは出力されます:
コールスタック、それは第二[NSObject performSelector:]
で呼ばれています最初の時間を分析
[settings]: button pressed
[initWithWindowNibName]
about to load
[awakeFromNib]
[awakeFromNib]
1つは[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:]
です。
誰かが私が間違っていると言うことができますか?
おかげ
同じ問題があってもアドレスが同じ場合はどうなりますか? – trumpetlicks
次に、新しい質問を関連する詳細で開く必要があります。 –