Cocoa中的NSSlider似乎并没有提供一个代理来接收像UISlider的Value Changed这样的事件。
例如,如何连续获取NSSlider的值并将其显示在NSTextField中?
发布于 2011-07-02 05:59:33
你需要研究一下Cocoa's Target/Action mechanism。这是您需要理解的一个基本的Cocoa概念。可以为滑块(和任何其他控件)提供一个目标(某个控制器对象)和一个操作(针对该控制器对象调用的方法)。
默认情况下,该操作在用户停止拖动时触发。在界面生成器中检查滑块的Continuous属性,使其在您滑动滑块时触发操作。
发布于 2018-08-31 10:29:38
使用计时器方法的一个优点是,它适用于使用键盘而不是鼠标来调整滑块的情况。如果用户在系统偏好设置中打开了“全键盘访问”,他们可以使用Tab键来提供滑块焦点。然后,它们可以按住箭头键,以便自动重复开始,这样您就会遇到类似于使用鼠标拖动的情况:目标/操作正在重复触发,并且您希望在保存到数据库之前等待片刻的平静。
你需要小心不要过早地删除你的NSTimer。例如,如果用户在这几秒钟内退出应用程序,您可能希望在终止进程之前将滑块值“刷新”到数据库。
发布于 2019-04-05 02:34:04
基于the answer of Joshua Nozzi的编程解决方案
Swift
slider.isContinuous = trueObjective-C
slider.continuous = YES;https://stackoverflow.com/questions/6553265
复制相似问题