マウスとトラックパッド
マウスまたはトラックパッドは、キーボード入力を補足するために、クリックを使用し、滑らかで直感的な指のジェスチャーを使用して、インターフェイス要素をアクティブにし、アクションを開始する方法を提供します。
クリックとジェスチャ
macOS は、人々がカスタマイズできるさまざまな標準のマウスおよびトラックパッドのクリックとジェスチャをサポートしています。コンテンツを操作する主な方法ではない個々のクリックとジェスチャは、現在のワークフローへの適用性に基づいて有効または無効にできます。人々は、二次クリックを呼び出すためにマウスまたはトラックパッドの特定の領域を選択することさえもでき、特定のジェスチャに対して特定の指の組み合わせと動きを選択することもできます。
主なクリック | 期待される動作 | マウス | トラックパッド |
主なクリック | ファイルやボタンなどの項目を選択するかアクティブにします。 | ||
二次クリック | コンテキストメニューを表示します。 | ||
スクロール | ビュー内でコンテンツを上下左右に移動します。 | ||
スマートズーム | Web ページや PDF などのコンテンツを拡大または縮小します。 | ||
ページ間をスワイプ | 個別に表示されたページ間を前後に移動します。 | ||
フルスクリーンアプリ間をスワイプ | フルスクリーンアプリとスペースの間を前後に移動します。 | ||
ミッションコントロール (2 本の指でマウスをダブルタップするか、3〜4 本の指でトラックパッドを上にスワイプします) | ミッションコントロールをアクティブにします。 | ||
ルックアップおよびデータ検出器 (1 本の指で感圧クリックまたは 3 本の指でタップ) | 選択したコンテンツの上にルックアップウィンドウを表示します。 | ||
タップしてクリック | クリックではなくタップを使用して、主なクリックアクションを実行します。 | ||
感圧クリック | クリックしてからしっかりと押すと、選択したコンテンツの上にクイックルックウィンドウまたはルックアップウィンドウが表示されます。可変速度メディアコントロールなどの感圧コントロールに影響を与えるには、可変量の圧力を適用します。 | ||
ズームインまたはズームアウト (2 本の指でつまむ) | ズームインまたはズームアウト。 | ||
回転 (円を描くように 2 本の指を動かす) | イメージなどのコンテンツを回転させます。 | ||
通知センター (トラックパッドの端からスワイプ) | 通知センターを表示します。 | ||
AppExposé (3 〜4 本の指で下にスワイプ) | Exposé で現在のアプリのウィンドウを表示します。 | ||
ラウンチパッド (親指と 3 本の指でつまむ) | ラウンチパッドを表示します。 | ||
デスクトップを表示 (親指と 3 本の指で広げます) | すべてのウィンドウを邪魔にならないようにスライドさせて、デスクトップを表示します。 |
標準のコントロールとビューを使用します。 標準のコントロールとビューは、ほとんどの標準的なクリックとジェスチャに自動的に応答します。たとえば、意味のあるレイアウトを実装し、拡大を可能にするスクロールビューは、スマートズームジェスチャに自動的に応答します。
コンテキストと意味に基づいてクリックとジェスチャに応答します。 構成に基づいて、人々はジェスチャを実行するためにさまざまな物理的な動きをします。その結果、あなたのアプリは特定のデバイスの操作を監視するのではなく、意味のあるイベントに注意を払う必要があります。たとえば、2 本の指でスワイプする代わりに、あなたのアプリは "ページ間のスワイプ" イベントを監視します。
一般に、他のアプリと一貫性のある方法でジェスチャに応答します。 人々は、現在のアプリに関係なく、ほとんどのジェスチャがシステム全体で同じように機能することを期待しています。たとえば、"ページ間をスワイプ" ジェスチャは、人々が個々のドキュメントページ、Web ページ、またはイメージを閲覧しているかどうかに関係なく、同じように動作する必要があります。矯正タッチトラックパッドを備えたシステムでは、コントロールを感圧クリックしてより多くの情報を取得したり、アクションを加速したりするときに、アプリが予測どおりに一貫して動作することを期待しています。
システム全体のアプリ間ジェスチャーを再定義することは避けてください。 アプリ固有のジェスチャをカスタムの方法で使用するゲームでも、ミッションコントロールの表示やフルスクリーンウィンドウの切り替えなど、システム全体のジェスチャが利用できることを期待しています。システム全体のアクションを実行するために、ジェスチャをカスタマイズできることを忘れないでください。
ジェスチャは可能な限り応答性の高い方法で処理してください。 ジェスチャは、直接往査体験を向上させ、即座にライブフィードバックを提供する必要があります。これを実現するには、ジェスチャの実行中に他の操作を最小限に抑えます。
ジェスチャが適切なコンテンツに適用されることを確認してください。 一般に、ジェスチャは、選択した要素やウィンドウ内のアクティブなビューなど、人々が現在焦点を合わせているコンテンツに適用する必要があります。人々が操作している可能性が最も高い、最も具体的なコンテンツを特定することから始めて、それをジェスチャのターゲットにします。コンテンツがジェスチャに反応しない場合は、より高いコンテンツレベルとコンテナをターゲットにすることを検討してください。
カスタムジェスチャは慎重に定義してください。 カスタムジェスチャは、見つけて覚えるのが難しい場合があります。カスタムジェスチャを実行するのが不必要または厄介であると思われる場合、人々はそれを使用する可能性は低いです。カスタムジェスチャを定義しなければならない場合は、実行が簡単で、人々がすでに知っているジェスチャとあまり似ていないことを確認してください。
特定のデバイスやジェスチャの利用可能性に依存しないでください。 誰もがマウスやトラックパッドを持っているか、それを使いたいかを確信することはできません。さらに、人々はあなたの知らないうちにジェスチャを無効にしたり再定義することができます。これらの理由から、アクションを開始するため複数の方法を提供するのが最善です。
開発者向けガイダンスについては、NSResponder (NSResponder) を参照してください。
ポインタ
システムはさまざまな標準のポインタスタイルを提供します。これらのスタイルを使用して、インターフェース要素のインタラクティブな状態やドラッグ操作の結果を伝えることができます。
ポインタ | 名前 | 意味 | AppKit API |
Arrow (矢印) | コンテンツとインターフェース要素を選択して操作するための標準ポインタ。 | arrow() | |
Closed Hand (げんこつ) | ドラッグしてビュー内のコンテンツの表示を再配置します。たとえば、マップ内でマップをドラッグします。 | closedHand() | |
コンテクストメニュー | ポインタの下のコンテンツには、コンテキストメニューが使用できます。このポインタは通常、Ctrl キーが押されたときにのみ表示されます。 | contextualMenu() | |
Crosshair | プレビューでイメージを表示する場合など、正確な長方形の選択が可能です。 | crosshair() | |
Disappearing item | ドラッグした項目はドロップすると消えます。項目が元の項目を参照している場合、元の項目は影響を受けません。たとえば、メールボックスをメールのお気に入りバーからドラッグしても、元のメールボックスは削除されません。 | disappearingItem() | |
Drag copy | 宛先にドロップされたときに、ドラッグされた (移動ではない) 項目を複製します。ドラッグ操作中に Option キーを押すと表示されます。 | dragCopy() | |
Drag link | ドラッグアンドドロップ操作中に、ドロップ時に選択したファイルのエイリアスを作成します。エイリアスは元のファイルを指しており、元のファイルは移動されません。ドラッグ操作中に Option キーと Command キーを押すと表示されます。 | dragLink() | |
Horizontal I beam | テキストの選択と挿入は、TextEdit や Pages ドキュメントなどの水平レイアウトで可能です。 | I beam() | |
Open Hand | ドラッグしてビュー内のコンテンツを再配置することができます。 | openHand() | |
Operation not allowed | ドラッグした項目を現在の場所にドロップすることはできません。 | operationNot Allowed() | |
Pointing hand | ポインタの下のコンテンツは、Web ページ、ドキュメント、またはその他の項目への URL リンクです。 | pointingHand() | |
Resize down | ウィンドウ、ビュー、または要素のサイズを変更または下に移動します。 | resizeDown() | |
Resize left | ウィンドウ、ビュー、または要素のサイズを変更するか、左に移動します。 | resizeLeft() | |
Resize left/right | ウィンドウ、ビュー、または要素のサイズを変更するか、左右に移動します。 | resizeLeft Right() | |
Resize right | ウィンドウ、ビュー、または要素のサイズを変更するか、右に移動します。 | resizeRight() | |
Resize up | ウィンドウ、ビュー、または要素のサイズを変更または上に移動します。 | resizeUp() | |
Resize up/down | ウィンドウ、ビュー、または要素のサイズを変更または上下に移動します。 | resizeUpDown() | |
Vertical I beam | テキストの選択と挿入は、垂直レイアウトで可能です。 | iBeamCursorFor VerticalLayout() |
意図したとおりに、システムが提供するポインタを使用してください。 人々は標準的なポインタスタイルの意味に慣れています。1 つの意味を変更すると、人々は自分のアクションの結果を予測できなくなります。
使い慣れているため、システムが提供するポインタを優先します。 カスタムポインタをデザインしなければならない場合は、それによってあなたのアプリの使いやすさが向上し、混乱しないようにしてください。たとえば、カスタムポインタを使用すると、ポインタのどの部分を要素の上に配置するかを簡単に知ることができます。矢印 ポインタをカスタマイズする場合は、コピー や 項目の非表示 など、関連する矢印ポインタのカスタムバージョンも作成して下さい。
関連するガイダンスについては、ドラッグアンドドロップ を参照してください。開発者向けガイダンスについては、NSCursor を参照してください。
触覚フィードバック
>感圧タッチトラックパッドを搭載したデバイスで実行している場合、あなたのアプリは、特定の状況でドラッグ操作または感圧クリックに応答して触覚フィードバックを提供できます。あなたのアプリが採用できる特定の触覚フィードバックパターンは 3 つあります。
触覚フィードバックパターン | 説明 |
配置 | ドラッグされた項目の配置を示します。たとえば、このパターンは、人々が図形をドラッグして別の図形に配置するときに、描画アプリで使用できます。この型のフィードバックを使用できる他のシナリオには、特定の寸法に収まるようにオブジェクトをスケーリングしたり、オブジェクトを適切な場所に配置したり、オーディオやビデオのアプリでのトラックビューなど、何かの開始/最小または終了/最大に到達するなどがあります。 |
レベル変化 | 個別の圧力レベル間の移動を示します。たとえば、人々がビデオプレーヤーの早送りボタンを押すと、再生が増減したり、さまざまなレベルの圧力に達したときに触覚フィードバックが提供されたりします。 |
汎用 | 他のパターンが適用されない場合に一般的なフィードバックを提供することを目的としています。 |
触覚を慎重に使用してください。 使いすぎるとフィードバックの重要性が低下し、混乱を招きます。
ユーザが開始したアクションに応じて触覚フィードバックを提供して下さい。 人々は触覚を、自分が開始するアクションと簡単に関連付けることができます。他の時に発生する触覚は無計画に見え、混乱やユーザ体験の切断につながる可能性があります。
フィードバックの種類を再定義しないでください。 一貫した体験を確保するには、意図したとおりにフィードバックの型を使用してください。配置とレベル変化のフィードバックパターンは非常に特殊な使用方法向けであり、システム全体を通して一貫して使用する必要があります。これらのパターンの使用方法があなたのアプリに当てはまらない場合は、汎用パターンを使用してください。
触覚のため視覚体験を微調整します。 視覚的フィードバックと触覚フィードバックを一緒に提供して、アクションと結果のより深い関係を作成します。感圧タッチトラックパッドで人々が感じるものと視覚的に一致するように、アニメーションが鋭くて正確であることを確認してください。
単一の通信モードに依存しないでください。 すべてのデバイスがすべての範囲の触覚フィードバックをサポートしているわけではありません。必要に応じて、[設定] でこの機能を完全に無効にすることができます。さらに、触覚フィードバックは、デバイスがアクティブであなたのアプリが最前面にある場合にのみ発生します。重要な情報を見逃さないように、触覚を視覚的および聴覚的な手がかりで補足します。
触覚を、付随する音と同期させます。 触覚は自動的に音と同期しません。聴覚の手がかりが必要な場合は、音を触覚と同期させて下さい。
開発者向けガイダンスについては、NSHapticFeedbackPerformer (NSHapticFeedbackPerformer) を参照してください。