NSSlider Ereignis nicht ausgelöst
Frage
Ich habe ein Ereignis auf meinem NSSlider mit diesem Code bekommen:
- (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");
}
Aber es ist nicht feuern und die Konsole gibt diese Meldung: 2011-01-09 19: 31: 18,994 Nistract [1337: a0f] - [NSSlider Wert]: Unbekannter Selektor an Instanz gesendet 0x100427400
Lösung 3
Jetzt benutze ich diesen Code und es scheint zu funktionieren:
- (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");
}
Andere Tipps
Die Methode ist Ausführen. Du bist nur abstürzt, weil Sie eine Methode auszuführen sind versucht, das gar nicht existiert.
Das Problem ist, diese Zeile:
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];
NSSlider
keine value
Methode. Es hat eine doubleValue
Methode, dass die Renditen ein double
.
Sie haben Ihren Slider hartcodiert. Statt Anrufe wie diese
[optOndoorzichtigheidSlider intValue];
versuchen, die sender
mit
[sender intValue];
Und es sieht aus wie Sie ein Etikett mit dem Wert aktualisieren hier
[optOndoorzichtigheidLabel setStringValue:opacity];
Wenn man bedenkt, könnte mit Bindungen statt.