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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top