代码之家  ›  专栏  ›  技术社区  ›  dbr

在cocoa中实现“scruby sliders”?

  •  1
  • dbr  · 技术社区  · 16 年前

    我该如何实现一些类似于photoshop和其他一些图像处理应用程序的“scruby sliders”的东西呢?

    它们有点难以描述。基本上你有一个普通的数字输入框,但是你可以点击并按住鼠标按钮,它的功能就像一个滑块(直到你释放)。如果在框中单击,可以像往常一样选择文本、编辑/粘贴等。

    这个 Photoshop docs 描述一下,然后我把 a quick example video (中滑块的示例 Shake )

    另一个类似的实现方式是final cut pro中的jog wheel,它的功能类似,但没有数字读数在下面。

    我似乎找不到任何关于实现这些的信息,尽管可能有其他的名字。它适用于OS X 10.5 Cocoa应用程序。

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

    将值复制并粘贴到框中是清除值的第二个问题,photoshop/shake设置非常好。控件的不可见性也是一个低关注点,因为它不是“常规桌面应用程序”

    2 回复  |  直到 16 年前
        1
  •  5
  •   Peter Hosey    16 年前

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

    一个更好的方法是在字段下面使用一个小滑块,当用户按住它的鼠标按钮时,它会扩展为全尺寸滑块,当用户松开鼠标按钮时,它会缩回到它的小尺寸。这样,选择行为仍然可用,但您也可以以更明显的方式提供滑块和。

    Cocoa中没有任何一个的内置类。你得自己动手。

        2
  •  1
  •   mouviciel    16 年前

    我怀疑这是否存在于cocoa框架中。据我所知,在 Apple Human Interface Guidelines .

    通过使用自定义视图和跟踪鼠标事件,您可以自己开发一个( -mouseDown: , mouseUp: , -mouseDragged: )