2009-06-08 38 views

Respuesta

3

Michael Vannorsdel sugiere sublassing NSView para el propósito, y cito:

te había realmente sería mejor hacer una subclase NSView y tener que dibujar la imagen que desea en drawRect :.

- (void)awakeFromNib 
{ 
    myImage = [[NSImage alloc] init.... 

    [self setNeedsDisplay:YES]; 
} 

- (void)drawRect:(NSRect)rect 
{ 
    NSSize isize = [myImage size]; 
    [myImage drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 0.0, 
isize.width, isize.height) operation: NSCompositeCopy fraction:1.0]; 
} 

leer todo ese hilo en cocoabuilder, es muy instructivo.

5

Una ventana en Cocoa tiene una vista de nivel de raíz llamada "vista de contenido". Esta es la vista que contiene todos los demás en una ventana. De forma predeterminada, es simplemente NSView, en blanco. Pero puede crear fácilmente su propia subclase personalizada NSView, anular el método drawRect: para dibujar su imagen de fondo y usarla para su vista personalizada.

Sin embargo, podría ser más fácil usar un simple viejo NSImageView. La ventaja de esto es que puede configurar, por ejemplo, el comportamiento de autosizing para mantener la imagen fija en una esquina (intente esto con Installer.app cambiando el tamaño de la ventana del instalador). También podría hacerlo semi-opaco para que el fondo se muestre un poco. (De nuevo, estoy pensando en Installer.app; tu aplicación podría ser totalmente diferente)

¡Espero que te lleve en la dirección correcta!

Cuestiones relacionadas