在Cocoa中实现“scrubby sliders”?

时间:2009-02-11 13:40:25

标签: cocoa user-interface

我将如何实现像“滑动滑块”一样的东西,比如Photoshop和其他一些图像处理应用程序?

它们稍微难以描述..基本上你有一个常规的数字输入框,但你可以点击并按住鼠标按钮,它的功能就像一个滑块(直到你发布)。如果您在框中单击,您可以照常选择文本,编辑/粘贴/等。

Photoshop docs描述了它,我将a quick example videoShake中的滑块示例放在一起)

另一个类似的实现是Final Cut Pro中的微动轮,它的功能类似,没有数字读数。

我似乎无法找到实现这些的任何提及,尽管可能有替代名称。它适用于OS X 10.5 Cocoa应用程序。

用于颜色分级应用程序,用户可能需要在同一控件上进行微调(例如0.001),以进行大幅调整(例如,-100 + 100)。常规滑块在该值范围内不够准确。

将值复制并粘贴到框中将是擦除值的第二个问题,Photoshop / Shake设置非常好。控制的不明显也是一个低关注点,因为它不是“常规桌面应用程序”

2 个答案:

答案 0 :(得分:5)

我遇到过那些。他们很糟糕,因为它们阻止用户拖动来选择数字的文本。

更好的想法是在场地下方的微型滑块,当用户按住鼠标按钮并在用户释放鼠标按钮时折叠回其微型尺寸时,该滑块可扩展为全尺寸滑块。这样,选择行为仍然可用,但您也以更明显的方式提供滑块。

Cocoa中没有任何一个内置类。你必须实现自己的。

答案 1 :(得分:1)

我怀疑这在Cocoa框架中是否存在。据我所知,Apple Human Interface Guidelines中没有提到它。

您可以使用自定义视图和跟踪鼠标事件(-mouseDown:mouseUp:-mouseDragged:)自行开发。