質問

このコードを使用して、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に送信されます

役に立ちましたか?

解決 3

今、私はこのコードを使用していますが、それは機能しているようです:

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

他のヒント

メソッド 実行。存在しない方法を実行しようとしているため、クラッシュしているだけです。

問題はこの行です:

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

NSSlider 持っていない value 方法。それはあります doubleValue aを返す方法 double.

スライダーをハードコーディングしました。このような呼び出しの代わりに

[optOndoorzichtigheidSlider intValue];

を使用してみてください sender

[sender intValue];

そして、あなたはここで値を持つラベルを更新しているようです

[optOndoorzichtigheidLabel setStringValue:opacity];

代わりにバインディングの使用を検討できるとき。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top