XIB
을 만듭니다.InitWithCoder는 Cocoa NSView 기반 클래스를 호출하지 않습니다.
MyCustomView
이라는 클래스를 만들고이를 XIB
의 파일 소유자에게 할당합니다.
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) [self load];
return self;
}
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) [self load];
return self;
}
- (void)load {
NSArray* topLevelObjects;
[[NSBundle mainBundle] loadNibNamed:@"MyCustomView"
owner:self
topLevelObjects:&topLevelObjects];
NSView* view;
for (id aView in topLevelObjects) {
if ([umaVista isKindOfClass:[NSView class]]) {
view = umaVista;
break;
}
}
[self addSubview:view];
view.frame = self.bounds;
}
메인 앱에 NSView
을 만듭니다.
해당보기가 MyCustomView
으로 변경되었습니다.
나는 앱을 실행합니다. MyCustomView
의 initWithCoder
이 실행되지 않습니다. initWithFrame
이 실행되지 않습니다. awakeFromNib
이 실행되지 않습니다.
아무 반응이 없습니다.
아이디어가 있으십니까?
"XIB의 첫 번째 응답자에게 할당"이란 무엇을 의미합니까? 첫 번째 응답자에게 아무 것도 "할당"할 수 없으며, 이는 동적 응답 응답자 값을 나타내는 프록시 항목입니다. –
무엇을 의미합니까? 이것은 웹의 모든 자습서가 말하는 방법입니다. – SpaceDog
"파일 소유자"에게 할당 했습니까? –