使用NSSlider处理教程。
我想要的:移动滑块将在NSTextField中显示滑块值。
教程解释说,以下方法将在文本字段中显示滑块值:
- (IBAction)sliderDidMove:(id)sender {
NSSlider *slider = sender;
double value = [slider doubleValue];
[sliderValueLabel setDoubleValue:value];
}
方法不起作用所以我试图在Apples开发者网站上找到方法声明 但找不到它。从我的理解是方法:sliderDidMove一个类方法 来自NSSlider类,为什么我找不到任何文档?
答案 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!")
}