Apple 开发人员文档中未找到必需的 NSSlider 方法 (sliderDidMove) 声明
使用 NSSlider 编写教程。
我想要的:移动滑块将在 NSTextField 中显示滑块值。
教程解释了以下方法将在文本字段中显示滑块值:
- (IBAction)sliderDidMove:(id)sender {
NSSlider *slider = sender;
double value = [slider doubleValue];
[sliderValueLabel setDoubleValue:value];
}
方法不起作用,所以我尝试在苹果开发者网站上找到方法声明 但找不到它。从我的理解是方法:sliderDidMove一个类方法 来自 NSSlider 类,为什么我找不到任何文档?
Working on a tutorial with a NSSlider.
What I want: Moving the slider will show slider value in NSTextField.
Tutorial explains that following method will show slider value in text field:
- (IBAction)sliderDidMove:(id)sender {
NSSlider *slider = sender;
double value = [slider doubleValue];
[sliderValueLabel setDoubleValue:value];
}
Method does not work so I tried to find the method declaration on Apples developer website
but couldn't find it. From my understanding is the method: sliderDidMove a class method
from the class NSSlider so why I'm unable to find any documentation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当滑块值更改时,它会将
-[NSControl action]
发送到其-[NSControl target]
。因此,在 Interface Builder 中,您需要按住 Ctrl 键并从滑块拖动到具有sliderDidMove:
的对象(该对象可能是应用程序委托或文件所有者)。该名称由教程作者选择,可以是其他名称。或者,您可以通过编程方式进行设置:
另请注意,通过绑定可以更好地解决此特定任务:将滑块和标签的值绑定到某个对象的 double 属性,Cocoa 将使它们保持同步。
When slider value changes, it sends
-[NSControl action]
to its-[NSControl target]
. So in Interface Builder you need to Ctrl-drag from the slider to the object that hassliderDidMove:
(that will probably be either App Delegate or File's Owner). The name is chosen by the tutorial's author, it can be anything else.Alternatively, you can set it up programmatically:
Note also that this particular task is better solved with bindings: bind both slider's and label's value to a
double
property of some object, and Cocoa will keep them synchronized.在 Swift 中 ...
In
Swift
...