首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSSlider事件未触发

NSSlider事件未触发
EN

Stack Overflow用户
提问于 2011-01-10 02:33:52
回答 3查看 889关注 0票数 1

我的NSSlider上有一个事件,代码如下:

代码语言:javascript
复制
- (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的无法识别的选择器

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-10 23:34:40

现在我使用下面的代码,它似乎起作用了:

代码语言:javascript
复制
- (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");
}
票数 0
EN

Stack Overflow用户

发布于 2011-01-10 03:06:34

该方法正在执行。你崩溃只是因为你试图执行一个不存在的方法。

问题是这一行:

代码语言:javascript
复制
NSString *opacity = [NSString stringWithFormat:@"%d",[optOndoorzichtigheidSlider value]];

NSSlider没有value方法。它有一个返回doubledoubleValue方法。

票数 4
EN

Stack Overflow用户

发布于 2011-01-10 23:45:41

你已经硬编码了你的滑块。而不是像这样调用

代码语言:javascript
复制
[optOndoorzichtigheidSlider intValue];

尝试使用sender

代码语言:javascript
复制
[sender intValue];

并且看起来您正在使用此处的值更新标签

代码语言:javascript
复制
[optOndoorzichtigheidLabel setStringValue:opacity];

当你可以考虑使用绑定的时候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4640961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档