質問
このコードを使用して、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];
代わりにバインディングの使用を検討できるとき。
所属していません StackOverflow