私は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の最初のレスポンダに割り当てる」とはどういう意味ですか? First Responderに何かを割り当てることはできません。これは、動的なFirst Responder値を表すプロキシアイテムです。 –
どういう意味ですか?これは、Web上のすべてのチュートリアルがどのように伝えるかです。 – SpaceDog
「ファイルの所有者」に割り当てられたことを意味しますか? –