NSSlider caso no disparar
Pregunta
He conseguido un incidente en mi NSSlider con este código:
- (IBAction)optOndoorzichtigheidChange:(id)sender {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];
[defaults setObject:opacity forKey:@"opacity"];
[mainWindow setAlphaValue:[optOndoorzichtigheidSlider doubleValue]];
[defaults synchronize];
[optOndoorzichtigheidLabel setStringValue:opacity];
NSLog(@"fired");
}
Pero no se trata de disparar y la consola da este mensaje: 2011-01-09 19: 31: 18.994 Nistract [1337: a0f] - [valor NSSlider]: Selector no reconocido enviado a la instancia 0x100427400
Solución 3
Now I use this code and it seems to work:
- (IBAction)optOndoorzichtigheidChange:(id)sender {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider intValue]];
[defaults setObject:opacity forKey:@"opacity"];
[[mainWindow animator] setAlphaValue:((double) [optOndoorzichtigheidSlider intValue] / 100)];
[defaults synchronize];
[optOndoorzichtigheidLabel setStringValue:opacity];
NSLog(@"fired");
}
Otros consejos
El método es de ejecución. No eres más que estrellarse porque usted está tratando de ejecutar un método que no existe.
El problema es esta línea:
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];
NSSlider
no tiene un método value
. Tiene un método que devuelve un doubleValue
double
.
Usted ha programado en forma fija su deslizador. En lugar de las llamadas como esta ??p>
[optOndoorzichtigheidSlider intValue];
intente utilizar el sender
[sender intValue];
Y parece que va a actualizar una etiqueta con el valor aquí
[optOndoorzichtigheidLabel setStringValue:opacity];
Cuando usted podría considerar el uso de enlaces en su lugar.