Pregunta

Me gustaría tener un NSButton con una imagen y una imagen alternativa. La imagen alternativa debe mostrarse mientras se presiona el botón y también me gustaría mostrar la imagen alternativa del código, llamando a algo como [button setSelected:YES]. ¿Es esto posible sin mono con el alternateImage propiedad a mano?

¿Fue útil?

Solución

Esto es posible sin cambiar manualmente la imagen del botón:

En Interface Builder (editor XIB/NIB) selecciona el Escribe de nsbutton a "Palanca" y la imagen cambiará automáticamente a la imagen/título alternativo.

Set the type to Toggle to use the alternate image

Otros consejos

Puedes usar un NSButton con tipo establecido en NSToggleButton y luego cambie entre el image y el alternateImage utilizando el NSOnState / NSOffState estados del NSButton.

NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage

La forma más fácil es cambiar entre las dos imágenes:

@implementation NSButton (Select)

- (void) setSelected: (BOOL) yn
{
    NSImage *const tmp = [self image];
    [self setImage:[self alternateImage]];
    [self setAlternateImage:tmp];
}

@end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top