2011-12-06 5 views
0

내 응용 프로그램에 NSPopOver를 추가하려고하지만 10.7 이상을 실행할 때만로드하려고합니다. 나는 팝 오버를 넣어 별도의 XIB에서 컨트롤러 &보기를 확인하고 내 응용 프로그램 위임 'awakeFromNib 메소드 내부에서LoadNibNamed가 콘센트를 설정하지 않았습니다

BOOL loaded = [NSBundle loadNibNamed:@"Popovers.xib" owner:self]; 

로 넣은했습니다. xib로드 (로드 된 YES입니다.) 있지만 NSPopover 가리키는 콘센트 null로 남아 있습니다. awakeFromNib 메서드 안에 xib를로드하는 데 문제가 있습니까?

흥미롭게도 파일 이름에 .xib 확장자가 포함되지 않은 경우 충돌이 발생했습니다.

+0

비슷한 문제가 있습니다. 내 펜촉은 성공적으로로드되지만 콘센트는 모두 NULL입니다. – ctpenrose

답변

1

내가 맞다면 NSBundle의 loadNibNamed : owner : 메소드는 번들 만로드하고 최상위 레벨 객체는 인스턴스화하지 않습니다. 적절한 NSNib 메소드를 사용하여이를 수행 할 수 있습니다. instantiateNibWithOwner : topLevelObjects :. initWithNibName (ID) - 다음

viewController = [[MyViewController alloc] initWithNibName:@"name" bundle:[NSBundle mainBundle]] 

및 사용자 지정보기 컨트롤러의 내부의 펜촉을 인스턴스화 : (있는 NSString *) nibNameOrNil 번들 : (NSBundle *

은 내가 NSViewController 서브 클래스의 인스턴스를 생성하여 펜촉을로드하는 것을 선호) nibBundleOrNil 메서드 :

[self loadView]; 
관련 문제