2011-01-09 62 views
1

我已經得到了我NSSlider與此代碼的事件:NSSlider事件不觸發

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

但它不發射和控制檯給出了這樣的消息:2011-01-09 19:31:18.994 Nistract [1337 :a0f] - [NSSlider值]:發送到實例的無法識別的選擇器0x100427400

回答

0

現在我用這個代碼,它似乎工作:

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

方法正在執行。你只是因爲試圖執行一個不存在的方法而崩潰。

的問題是這一行:

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

NSSlider沒有value方法。它有一個doubleValue方法,返回double

+0

謝謝,這也是一個問題,但它並沒有解決我的問題。 – icant

1

您已經硬編碼的滑塊。而不是使用sender

[sender intValue]; 

這樣

[optOndoorzichtigheidSlider intValue]; 

嘗試調用它看起來像你正在更新在這裏

[optOndoorzichtigheidLabel setStringValue:opacity]; 

值的標籤時,你可以考慮使用護腕代替。