スピンボタン(spin button)はGUIパーツ(ウィジェット)の一種。主としてテキストボックス(テキストフィールド)の横に三角形マークの付いた小さな増減ボタン(▲/▼)として配置され、数値の入力などを補助するためのコントロールである。TVリモコンでいえばチャンネル送りボタンや音量ボタンに相当する。スピンボタンのついたテキストボックスのことはスピンボックスと呼ばれる。スピンエディットという名称のコントロールとして提供しているウィジェット・ツールキットも存在する[1]。.NET FrameworkのWindows FormsではNumericUpDown
コントロールとして提供されている[2]。
通例テキストボックスには不定値の入力が可能だが、それゆえ操作の自由度が高く、「1だけ増やした数」などはかえって入力が面倒になる傾向がある。例えば19に1を足せば20であり、二桁の書き換えが必要である。また数字以外のアルファベットなどを誤入力する可能性も考えられる。
これらの問題に対し、操作を増加/減少のみに絞った補助機構がスピンボタンである。一般に、わずかな量の増減を行なう場合はスピンボタンを操作する方が高速である。最大・最小値でループするケースもあり、入力範囲の限定にも有効であることが分かる。スピンボタンを持つテキストボックスにフォーカスがあるとき、キーボードの上下矢印キー(↑/↓)でも増減させることができ、またキーを押し続けることでキーリピートにより高速に増減することができるようになる。
Adobe Photoshopでは、RGBカラー値などの数値のみが入力可能なテキストボックスは、スピンボタンはないものの、スピンエディットのようにキーボードの上下矢印キーを押下することで数値を増減させることができる[3]。
一方、タッチスクリーンを搭載したスマートフォンやタブレット端末など、タッチインターフェイスが標準的となっている場合は、小さなスピンボタンの操作は難しいため、+/-のアイコンが描かれた大きなボタンや、スロットのリールに似た数値ピッカーなどが代替として使われる。例えばiOSではバージョン5.0以降でUIStepper
を標準化している[4]。また、Androidではバージョン3.0 (APIレベル11) 以降でNumberPicker
[5]を標準化している。