在Apple的开发人员文档中找不到必需的NSSlider方法(sliderDidMove)声明

时间:2012-02-19 15:06:25

标签: objective-c xcode nsslider

使用NSSlider处理教程。

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

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

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

方法不起作用所以我试图在Apples开发者网站上找到方法声明 但找不到它。从我的理解是方法:sliderDidMove一个类方法 来自NSSlider类,为什么我找不到任何文档?

2 个答案:

答案 0 :(得分:1)

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

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

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

另请注意,使用绑定可以更好地解决此特定任务:将slider和label的值绑定到某个对象的double属性,Cocoa将使它们保持同步。

答案 1 :(得分:0)

Swift ...

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



// Later on..

func sliderDidMove(){
    print("The slider moved!")
}