버튼을 클릭 할 때 팝업 창을 만들려는 응용 프로그램이 있습니다. 팝업 창이 nib 파일에서로드됩니다. 그러면 버튼이 클릭되고 창은 행복하게 팝업됩니다. 하지만 awakeFromNib 메서드는 두 번 호출됩니다. 여기에 코드가 있습니다.NSWindowController awakeFromNib가 두 번 호출됩니다.
응용 프로그램 위임 :
[settings]: button pressed
[initWithWindowNibName]
about to load
[awakeFromNib]
[awakeFromNib]
호출 스택 분석, 처음은이 [NSObject performSelector:]
두 번째로라고 :
...
-(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];
}
그리고는 출력 하나는 [NSIBObjectData nibInstantiateWithOwner:topLevelObjects:]
입니다.
누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?
감사
동일한 문제가 있지만 주소가 같은 경우는 어떻게합니까 ??? – trumpetlicks
그런 다음 관련 세부 정보가있는 새로운 질문을 열어야합니다. –