2012-09-27 4 views
1

저는 MainMenu.xib가 있고 AppController는 파일 소유자입니다. 나는 -(void)awakeFromNib 잘 작동하는 방법을 추가했습니다. 지금, 도로 아래쪽에있는 픽업은 awakeFromNib에 전화를 걸지 않아서 그 이유를 알 수 없습니다. 그것은 xib을 소유하므로 보관하지 않을 때 호출해야합니다. 무슨 일이야? 편집을 할코코아 - awakeFromNib가 호출되지 않았습니다.

:

글쎄, 나는 somethingawakeFromNib 이름을 변경하고, init에서 ... 그 일한했다. 여전히 awakeFromNib이 아닌 이유에 대해 혼란 스럽습니다. 나도 거기에 +(void) initialize 메서드를 가지고, 뭔가를 엉망이 될 수 있을까? 당신은 당신이 일을 연결할 수 있도록 객체의 아웃렛과 액션이 보여 무엇 엑스 코드를 알 수 있도록

- (id)init { 
    self = [super init]; 
    if (self) { 
     [self something]; 
    } 
    return self; 
} 


-(void)something { 
    NSLog(@"yup"); 
} 

답변

3

펜촉의 파일의 소유자의 클래스 이름을 설정하기 만하다. 어떤 개체가 인데 실제로는 파일 소유자가 응용 프로그램을 실행하고 nib가로드 될 때 영향을주지 않습니다.

Xcode의 검사기에서 FO에 대해 설정 한 클래스 이름에 관계없이 MainMenu 펜촉의 파일 소유자는 항상 응용 프로그램 개체입니다. NSApplication [1]하지만 어떤 클래스 이름으로 설정하는 것은 잘못되었습니다.

응용 프로그램을 실행할 때 콘솔에서 연결하려고 시도한 AppController의 모든 콘센트 또는 동작에 대한 오류 메시지를 찾아야합니다. 응용 프로그램 개체에 연결되어 있지 않으므로 연결할 수 없습니다.

nib 편집기에서 클래스 이름을 다시 변경하고 AppController를 MainMenu nib에 사용자 정의 객체로 만듭니다.


글쎄, 나는 somethingawakeFromNib 이름을 변경하고, init에서 ... 그 일한했다.

즉, init이 호출됨을 의미합니다. 즉, 호출하는 것입니다. 펜촉에 넣을 수있는 유효한 대안입니다. 펜촉이나 소유주가 아닌 경우 awakeFromNib을 덮어 쓰면 안됩니다.

선택 사항 : allocinit을 사용하여 AppController를 계속 생성하거나 해당 코드를 제거하고 대신 MainMenu nib에서 생성하십시오.


[1] : 또는, 당신은 NSApplication을 서브 클래스와 서브 클래스, 서브 클래스의 이름으로 앱 번들의 주요 클래스를 변경 한 경우.

+0

ㅎ, 전 주 xib에서 맞춤 개체로 어질러하는 것을 기억하는 것 같습니다. 삭제 한 것이 틀림 없습니다. 호출하려고 시도한 코드는 일부 데이터를 가져 오기 위해 우선 순위를 검사합니다. 이제 나는 깨어있는 상태로 두는 것이 좋다고 생각합니다 .Nib은 실제로 잘못된 장소였습니다. – janeh

관련 문제