2009-02-11 5 views
1

Comment est-ce que je pourrais mettre en place quelque chose comme "les curseurs scrubby", comme dans Photoshop et d'autres applications de traitement d'image?Implémentation de "curseurs scrubby" dans Cocoa?

Ils sont un peu difficiles à décrire. En gros, vous avez une boîte de saisie numérique régulière, mais vous pouvez cliquer et maintenir le bouton de la souris et cela fonctionne comme un curseur (jusqu'à ce que vous relâchiez). Si vous cliquez dans la boîte, vous pouvez sélectionner le texte, éditer/coller/etc comme d'habitude.

Le Photoshop docs décrire, et je l'ai mis ensemble a quick example video (un exemple des curseurs Shake)

Une autre application similaire serait la molette dans Final Cut Pro, qui fonctionne de la même, sans l'affichage numérique étant sous.

Je n'arrive pas à trouver de mention de leur implémentation, bien qu'il existe probablement d'autres noms pour cela. C'est pour une application OS X 10.5 Cocoa. Il s'agit d'une application de calibrage des couleurs, où un utilisateur peut avoir besoin de faire de petits ajustements (0,001, par exemple), à ​​d'énormes ajustements (disons -100 +100) sur le même contrôle. Un curseur régulier n'est pas assez précis sur cette plage de valeurs.

Copier-coller des valeurs dans la boîte serait une préoccupation secondaire pour le nettoyage des valeurs, et la configuration de Photoshop/Shake vraiment bien. La non-évidente de la commande est également d'un faible souci, car ce n'est pas une "application de bureau régulière"

+1

J'ai toujours pensé que les gars de Photoshop User TV ont inventé ce nom. Je n'avais aucune idée qu'Adobe utilise le terme. –

Répondre

5

J'ai rencontré ceux-ci. Ils craignent, car ils empêchent l'utilisateur de glisser pour sélectionner le texte du numéro. Une meilleure idée serait un curseur miniature sous le champ qui se transforme en un curseur de taille normale lorsque l'utilisateur appuie sur le bouton de la souris et redescend à sa taille miniature lorsque l'utilisateur relâche le bouton de la souris. De cette façon, le comportement de sélection est toujours disponible, mais vous fournissez également le curseur, et de manière plus évidente.

Il n'y a pas de classe intégrée dans Cocoa pour l'un ou l'autre. Vous devrez mettre en place le vôtre.

+0

"empêcher l'utilisateur de glisser pour sélectionner le texte" Ils ne tendent pas à, si vous double-cliquez, il désactive généralement le scrubbyness, de sorte que vous pouvez sélectionner le texte comme d'habitude – dbr

+0

Eh bien, * c'est pas évident. –

+0

En fait, il est généralement activé par un simple clic (In shake/Photoshop). Cela dit, je n'ai vu de tels contrôles que dans des applications assez "haut de gamme", où ils sont absurdement utiles et agréables à utiliser. Je suis d'accord qu'ils sont un peu obscurs et non évidents pour une application de bureau "normale". – dbr

1

Je doute que cela existe dans le cadre de Cocoa. Pour autant que je me souvienne, il n'est pas mentionné dans le Apple Human Interface Guidelines.

Vous pouvez en développer un vous-même en utilisant une vue personnalisée et suivre les événements de la souris (-mouseDown:, mouseUp:, -mouseDragged:).