Question

J'ai eu un événement sur mon NSSlider avec ce code:

- (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");
}

Mais ce n'est pas de tir et la console donne ce message: 2011-01-09 19: 31: 18,994 Nistract [1337: a0f] - [valeur NSSlider]: sélecteur non reconnu envoyé à l'instance 0x100427400

Était-ce utile?

La solution 3

Maintenant, j'utilise ce code et il semble fonctionner:

- (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");
}

Autres conseils

La méthode est d'exécution. Vous êtes juste écraser parce que vous essayez d'exécuter une méthode qui n'existe pas.

Le problème est cette ligne:

NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];

NSSlider ne dispose pas d'une méthode de value. Il a une méthode doubleValue qui retourne une double.

Vous avez codé en dur votre curseur. Au lieu d'appels comme celui-ci

[optOndoorzichtigheidSlider intValue];

essayez d'utiliser le sender

[sender intValue];

Et il semble que vous mettez à jour une étiquette avec la valeur ici

[optOndoorzichtigheidLabel setStringValue:opacity];

Lorsque vous pouvez envisager d'utiliser Manchettes à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top