2011-01-09 2 views
1
Brennen

Ich habe ein Ereignis auf meinem NSSlider mit diesem Code bekomme:NSSlider Ereignis nicht

- (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 value]: nicht erkannter Selektor wird an Instanz 0x100427400 gesendet

Antwort

0

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

Die Methode wird ausgeführt. Sie stürzen gerade ab, weil Sie versuchen, eine Methode auszuführen, die nicht existiert.

Das Problem ist, diese Zeile:

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

NSSlider keine value Methode haben. Es hat eine doubleValue Methode, die eine double zurückgibt.

+0

Danke, das war auch ein Problem, aber es hat mein Problem nicht gelöst. – icant

1

Sie haben hart codiert Ihr Schieber. Statt Anrufe wie diese

[optOndoorzichtigheidSlider intValue]; 

versuchen, die sender

[sender intValue]; 

verwenden und es sieht aus wie Sie ein Etikett mit dem Wert hier

[optOndoorzichtigheidLabel setStringValue:opacity]; 

aktualisieren Wenn Sie stattdessen mit Bindungen in Erwägung ziehen könnte .