Desde la plantilla de una aplicación de OS X en Xcode parece ser similar a una plantilla de aplicación de vacío, se usa para añadir una vista y un botón (tratando de no utilizar el constructor de interfaz por ahora) lo siguiente:¿Cómo agregar un NSView a NSWindow en una aplicación Cocoa?
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(100, 100, 100, 100)];
view.layer.backgroundColor = [[NSColor yellowColor] CGColor];
[self.window.contentView addSubview:view];
NSRect frame = NSMakeRect(10, 40, 90, 40);
NSButton* pushButton = [[NSButton alloc] initWithFrame: frame];
pushButton.bezelStyle = NSRoundedBezelStyle;
[self.window.contentView addSubview:pushButton];
NSLog(@"subviews are %@", [self.window.contentView subviews]);
}
Código similar en iOS debería haber producido un cuadro amarillo y un botón, pero el código anterior solo produce un botón, pero la vista no se mostrará. ¿Hay algún problema con el código anterior y cómo hacer que muestre la vista con un fondo amarillo?
NSView no tiene una propiedad backgroundColor, parece. ¡Casi echo de menos 'UIKit' ...! –
Esta respuesta es mala. Usted está [explícitamente informado] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html # // apple_ref/doc/uid/20000014-SW61) para no tocar la capa de respaldo en una vista de capa ver donde usaste '-setWantsLayer:' sin llamar '-setLayer:' primero). De los documentos: ** Al usar vistas respaldadas por capas, nunca deberías interactuar directamente con la capa ** –
quieres decir, primero debes instanciar un CALayer, configurarlo en view.layer, y luego establecer wantsLayer en YES, y establecer el color de fondo ? –