似乎Cocoa中的NSSlider
没有提供委托来接收UISlider
的值更改等事件。
如何连续获取NSSlider的值并将其显示在NSTextField
中?
答案 0 :(得分:44)
您需要研究Cocoa's Target/Action mechanism。这是您需要了解的基本Cocoa概念。滑块(和任何其他控件)可以被赋予目标(某个控制器对象)和动作(调用该控制器对象的方法)。
默认情况下,用户停止拖动时会触发操作。 检查滑块在Interface Builder中的连续属性,使其在您滑动时触发操作。
答案 1 :(得分:1)
使用计时器方法的一个优点是,它适用于使用键盘而不是鼠标来调整滑块的情况。如果用户在“系统偏好设置”中启用了“全键盘访问”,则可以使用Tab键为滑块提供焦点。然后,他们可以按住箭头键,以使自动重复生效,这时您将出现与鼠标拖动类似的情况:目标/动作反复触发,并且您需要等待片刻才能保存到数据库。
您需要注意不要过早删除NSTimer。例如,如果用户在这几秒钟内退出了应用程序,则可能要在终止过程之前将滑块值“刷新”到数据库中。
答案 2 :(得分:0)
基于the answer of Joshua Nozzi的程序化解决方案:
快速
slider.isContinuous = true
Objective-C
slider.continuous = YES;