¿Cómo cargo correctamente un objeto que es una subclase de NSView utilizando un Xib?cargando programáticamente el objeto desde la subclase de NSView desde la punta
quiero que se cargue dinámicamente no desde el principio, así que hice una MyView.Xib De MyDocument.m que hice:
MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...
y el fondo está muy bien (que llama drawRect: y se dibuja como se esperaba) pero no aparecerán todos los botones que puse en el xib. He comprobado, y están cargados PERO su supervista no es el mismo objeto que myView
.
¿Por qué es esto? Creo que me falta algo en el Xib, pero no sé exactamente qué. En otras palabras: ¿cómo me aseguro de que la vista raíz en mi xib sea el mismo objeto que el propietario del archivo?
Me gustaría que hubiera algo similar a esto para el 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];
...
Gracias de antemano.
EDITAR
Creo que me he dado cuenta el origen del problema ... (??)
En la clase MyView tengo varios IBOutlet que están conectados correctamente en IB es por eso que se carguen muy bien (puedo referirlos). Sin embargo, no hay IBOutlet para la vista superior. Entonces, cuando NSBundle carga el plumín, la vista superior se asigna a algún otro objeto. Pensé que esto sucedería si configuro mi vista superior en IB como perteneciente a la clase: MyView
y pongo myView
como propietario en [NSBundle loadNibNamed:@"MyView" owner:myView];
, pero parece que no es el caso. ¿Qué estoy haciendo mal?
Intenta moverlos al frente tal vez lo dibuje en la parte posterior y no se puede ver debido al fondo – Radu
Acabo de intentar ...eso no está sucediendo; ( – nacho4d
En su archivo de punta, ¿hay una vista de nivel superior cuya clase es 'MyView'? ¿Hay otros objetos de nivel superior en el archivo de punta? ¿Y cuál es la clase del propietario del archivo? –