我的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 Nistract1337:a0f -NSSlider值:发送到实例0x100427400的无法识别的选择器
发布于 2011-01-10 23:34:40
现在我使用下面的代码,它似乎起作用了:
- (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");
}发布于 2011-01-10 03:06:34
该方法正在执行。你崩溃只是因为你试图执行一个不存在的方法。
问题是这一行:
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];NSSlider没有value方法。它有一个返回double的doubleValue方法。
发布于 2011-01-10 23:45:41
你已经硬编码了你的滑块。而不是像这样调用
[optOndoorzichtigheidSlider intValue];尝试使用sender
[sender intValue];并且看起来您正在使用此处的值更新标签
[optOndoorzichtigheidLabel setStringValue:opacity];当你可以考虑使用绑定的时候。
https://stackoverflow.com/questions/4640961
复制相似问题