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

¿Fue útil?

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

[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.

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