programmatically loading object from subclass of NSView from nib
Como carregar corretamente um objeto que é uma subclasse do NSView usando um Xi
Eu quero que ele seja carregado dinamicamente, não desde o começo, então criei um MyView.Xib de MyDocument.m que fiz:
MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...
e o fundo é bom (chama drawrect: e é desenhado conforme o esperado), mas todos os botões que coloquei no xib não aparecerão. Eu verifiquei e eles estão carregados, mas a supervisão não é o mesmo objeto quemyView
.
Por que é isso? Acho que estou perdendo algo no Xib, mas não sei exatamente o que. Em outras palavras: Como garantir que a visualização raiz no meu xib seja o mesmo objeto que o proprietário do arquivo?
Eu gostaria que houvesse algo semelhante a isso para o mac:
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; //in iOS this will load the xib
MyView* myView = [ nibViews objectAtIndex:1];
[someview addSubview:myView];
...
Desde já, obrigado
EDITA
Acho que percebi a origem do problema ... (??)
Na classe MyView, tenho vários IBOutlet conectados corretamente no IB e é por isso que eles carregam muito bem (posso consultá-los). No entanto, não há IBOutlet para a vista superior. Portanto, quando o NSBundle carrega a ponta, a vista superior é atribuída a outro objeto. Eu pensei que isso aconteceria se eu definir minha visualização superior no IB como sendo da classe:MyView
e coloquemyView
como o proprietário em[NSBundle loadNibNamed:@"MyView" owner:myView];
mas parece não ser o caso. O que estou fazendo errado