Perdido en tipos de nsbutton e imágenes alternativas
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?
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.
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