1

使用 NSSlider 编写教程。

我想要什么:移动滑块将在 NSTextField 中显示滑块值。

教程解释了以下方法将在文本字段中显示滑块值:

- (IBAction)sliderDidMove:(id)sender {
    NSSlider *slider = sender;
    double value = [slider doubleValue];
    [sliderValueLabel setDoubleValue:value];    
}

方法不起作用,所以我试图在 Apples 开发者网站上找到方法声明,但找不到。据我了解,方法是:sliderDidMove 类 NSSlider 中的类方法,那么为什么我找不到任何文档?

4

2 回答 2

1

当滑块值改变时,它发送-[NSControl action]到它的-[NSControl target]. 因此,在 Interface Builder 中,您需要按住 Ctrl 键从滑块拖动到具有的对象sliderDidMove:(可能是 App Delegate 或 File's Owner)。名称由教程的作者选择,可以是其他任何名称。

或者,您可以通过编程方式进行设置:

[slider setTarget:self]; // assume the handler is [self sliderDidMove:]
[slider setAction:@selector(sliderDidMove:)];

还要注意,这个特定的任务最好通过绑定来解决:将滑块和标签的值绑定到double某个对象的属性,Cocoa 将使它们保持同步。

于 2012-02-19T15:25:33.933 回答
0

Swift...

 // Somewhere maybe in viewDidLoad ...
        slider.target = self
        slider.action = #selector(sliderDidMove)



// Later on..

func sliderDidMove(){
    print("The slider moved!")
}
于 2017-04-02T23:13:46.203 回答