2011-01-09 3 views
1

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

- (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

Répondre

0

Maintenant, j'utiliser 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"); 
} 
4

La méthode est en cours d'exécution. Vous plantez simplement 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 n'a pas une méthode value. Il a une méthode doubleValue qui renvoie un .

+0

Merci, c'était aussi un problème, mais cela n'a pas résolu mon problème. – icant

1

Vous avez figées dans le code de votre curseur. Au lieu d'appels comme celui-ci

[optOndoorzichtigheidSlider intValue]; 

essayer 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 à la place Manchettes .

Questions connexes