ドラッグアンドドロップ


ドラッグアンドドロップを使用すると、テキスト、ファイル、イメージなどの ソースコンテンツ を選択し、ある場所 (ソースコンテナ) から別の場所 (宛先コンテナ) にドラッグして、コンテンツを移動または複製できます。ほとんどの macOS アプリは、ユーザのニーズとアプリ固有の機能に基づいて、ある程度のドラッグアンドドロップ機能を実装しています。例えば:


  • 読み取り専用のテキストフィールドでは、そのコンテンツを他の場所にドラッグできても、ドロップされたコンテンツは受け入れられない場合があります。

  • ドキュメントリストでは、ドラッグしてドキュメントを並べ替えることはできますが、新しいドキュメントをドロップすることはできません。

  • テキストエディタでは、テキストをドラッグしたり、別のアプリからドロップしたテキストを受け入れたりできます。

  • あなたのアプリでは、テキストビューなどの単一のコンテナ内、2 つのテキストフィールドやウィンドウなどのコンテナ間、MailFinder などの他のアプリにもでドラッグアンドドロップを有効にできます。




    開発者向けガイダンスについては、ドラッグアンドドロッププログラミングトピックス (Drag and Drop Programming Topics) を参照してください。



    ドラッグアンドドロップのサポート


    一般に、あなたのアプリにドラッグアンドドロップのサポートを実装して下さい。 ドラッグアンドドロップは、システム全体を通してコンテンツを移動およびコピーするための効率的で直感的な方法です。没入型ゲームなど、あなたのアプリで本当に役に立たない場合を除いて、付加価値のある場所であればどこでもドラッグアンドドロップをサポートするように努めてください。あなたのアプリでテキスト、イメージ、またはファイルを操作する場合は、ドラッグアンドドロップ機能を利用できます。


    ドラッグアンドドロップのタスクを実行するための代替方法を提供して下さい。 支援技術を使用している場合など、一部の人にとってはドラッグアンドドロップ操作を実行するのが難しい場合があります。FinderMail は、ドラッグアンドドロップの代替手段を提供するアプリの例です。これらには、宛先間でアイテムをコピーおよび移動するために使用できるメニュー項目が含まれています。


    ドラッグアンドドロップ操作で移動するかコピーするかを決定します。 一般に、移動は通常、同じアプリ、ドキュメント (同じドキュメントを表示する 2 つのウィンドウ間をドラッグする場合でも)、ディスクなど、ソースコンテナと宛先コンテナが同じである場合に意味があります。コピーは通常、2 つの異なるアプリ、ドキュメント、ディスクなど、ソースコンテナと宛先コンテナが異なる場合に意味があります。たとえば、Mail メッセージを Finder デスクトップにドラッグすると、メッセージはファイルとしてデスクトップにコピーされます。Mail メッセージをメールボックスにドラッグすると、メッセージは現在の場所から新しいメールボックスに移動されます。


    可能であれば、ドラッグアンドドロップ操作を元に戻せるようにします。 場合によっては、ユーザが誤ってコンテンツを間違った宛先にドラッグすることがあります。これが発生した場合、ユーザは理想的には undo を使用してコンテンツを以前の場所に復元できる必要があります。


    ドラッグへの応答


    可能であれば、人々が 1 つのステップでコンテンツを選択してドラッグできるようにします。 たとえば、Finder では、ファイルをクリックしてすぐに新しい宛先へのドラッグを開始できます。複数のファイルをドラッグする場合を除いて、個別に選択して一時停止してからドラッグを開始する必要はありません。


    アクティブでないウィンドウで選択したコンテンツを人々がドラッグできるようにします。 アクティブでないウィンドウで選択されたコンテンツは バックグラウンド選択 と呼ばれ、アクティブなウィンドウで選択されたコンテンツとは外観が異なります。一般に人々は、特にテキスト、イメージ、ファイルなどのコンテンツの範囲である場合は特に、バックグラウンド選択をアクティブなウィンドウにドラッグできることを期待しています。たとえば、TextEdit では、アクティブでないドキュメントを前面に表示せずに、選択したテキストをアクティブでないドキュメントからアクティブなドキュメントにドラッグできます。このようなアクションをサポートするには、ウィンドウがアクティブでなくなったときにユーザの選択を維持しなければなりません。


    可能であれば、背景の選択に影響を与えることなく、人々がアクティブでないウィンドウで個々のアイテムをクリックしてドラッグできるようにします。 たとえば、アプリの使用中に、背景の Finder ウィンドウで個々のファイルをクリックして、以前に選択したファイルの選択を解除せずに、新しい場所にドラッグできます。


    ドラッグ中にフィードバックを提供


    コンテンツが少なくとも 3 ポイントの距離だけドラッグされるとすぐに、ポインタの下にドラッグイメージを表示します。 ドラッグイメージは、ドラッグされているコンテンツの半透明の表現です。この外観はコンテキストを提供し、ドラッグが進行中であることを示し、ユーザがドラッグされたコンテンツの下にある宛先を確認できるようにします。ドラッグイメージは、ユーザがコンテンツをドロップするまで表示されます。




    多項目のドラッグイメージとバッジ



    拡大したドラッグイメージ


    多項目をドラッグするときに、多項目のドラッグイメージを表示します。 ユーザが多項目を選択してドラッグする場合、ドラッグイメージは個々の項目を表す、積み重ねられたイメージで構成されています。関連するガイダンスについては、多項目のドラッグイメージ を参照してください。


    多項目のドラッグ中に項目のカウントバッジを表示します。 バッジは、ドラッグされている項目の数を示す白い数字を含む小さな赤い楕円としてポインタの下に表示されます。必要に応じてバッジ数を更新します。宛先がドラッグされた項目のサブセットのみを受け入れる場合は、バッジ数を変更して、受け入れられる項目の数を示します。


    わかりやすくする場合は、コンテンツを宛先にドラッグするときにドラッグイメージを変更します。 たとえば、写真を TextEdit ドキュメントにドラッグすると、写真が展開され、ユーザが写真をドキュメントにドロップした場合の外観が表示されます。この動作により、ユーザはドラッグアンドドロップ操作の結果をコミットする前にプレビューできます。ドラッグイメージを変更すると貴重なフィードバックが得られますが、ドラッグイメージの形が絶えず根本的に変化するような、気が散るような体験をさせることは避けてください。




    移動ポインタ




    コピーポインタ


    コンテンツがドロップされたときに何が起こるかを示すポインタを表示します。 たとえば、新しいアイコンをツールバーにドラッグすると、コピー ポインタが表示されます。有用な宛先フィードバックを提供する他のポインタには、ドラッグリンク項目の非表示、および 許可されていない操作 が含まれます。ポインタ を参照してください。


    ドロップできない場合を明確に示します。 ドラッグ中、ユーザはコンテンツをドロップできる場合とできない場合を知っておく必要があります。一部のアプリは、ドロップが可能な場合にのみ挿入ポイント、ハイライト、または受け入れポインタバッジを表示することでこれを伝達します。つまり、視覚的なフィードバックがないことは、ドロップが不可能な場合を示します。他のアプリは、スラッシュ付きの円など、明示的に 許可されていない バッジを表示します。


    コンテンツがその上にドラッグされたら、新しい宛先を強調表示します。 宛先が複数ある場合は、一度に 1 つずつ強調表示します。ソースコンテナと宛先コンテナが同じ場合、強調表示は不要です。たとえば、Finder で、ドキュメントアイコンを同じフォルダウィンドウ内の別の場所に移動しても、混乱が生じる可能性があるため、フォルダウィンドウは強調表示されません。場合によっては、コンテンツがコンテナから完全にドラッグされてから再入力されると、強調表示が発生することがあります。コンテンツが宛先の上に配置されなくなったら、強調表示を削除する必要があります。




    垂直挿入インジケータ




    水平挿入インジケータ


    テキストでは、垂直挿入インジケータを使用して、ドラッグしたコンテンツがドロップされたときに表示される場所を示します。 挿入インジケータはポインタとは別に、ドラッグが有効かどうか、およびドラッグが移動またはコピーとして解釈されるかどうかをユーザに示します。


    表では、水平挿入インジケータと強調表示を使用して、ドロップしたときにもコンテンツが存在する場所を示します。 たとえば、Finder ウィンドウのサイドバーには、既存のサイドバー項目間でコンテンツをドラッグすると、水平挿入インジケータが表示されます。サイドバー内のフォルダとディスクも、コンテンツをドラッグすると強調表示され、ドロップされたコンテンツがそれらに移動またはコピーされることを示します。


    必要に応じて、宛先を自動的にスクロールします。 コンテンツが宛先の境界の外にドラッグされた場合、あなたのアプリは、宛先のコンテンツをスクロールするか、ユーザがまったく別の宛先にドラッグし続けるかを決定しなければなりません。あなたのアプリでユーザがドラッグを続行できる場合は、ドラッグした項目がその上に配置されたときに自動スクロールが発生する領域を定義することを検討してください。たとえば、コンテンツがウィンドウの本体領域の上部または下部にドラッグされると、Finder ウィンドウは自動的にスクロールします。自動スクロールは、アクティブなウィンドウでのみ発生する必要があります。ユーザがアクティブでないウィンドウで自動スクロールを開始しようとした場合は、ウィンドウを前面に移動します。



    ドロップされたデータの受け入れ


    ドロップ時に Option キーを確認してください。 ユーザは、ドラッグ中に Option キーを押すことにより、同じコンテナー内のドラッグアンドドロップ操作を強制的にコピーのように動作させることができます。この動作により、ユーザはドラッグの過程で移動またはコピーの決定を柔軟に行うことができます。同じコンテナにコンテンツをドロップする前にユーザが Option キーを押すのをやめると、コピーではなく移動が発生します。一般に、2 つの異なるコンテナ間をドラッグすると、常にコピーが生成されます。





    ドロップが失敗した場合は、期待されるアニメーションを使用してください。 ユーザが項目を無効な宛先にドロップした場合、またはドロップが失敗した場合、項目はポインタの位置から元の位置にズームして戻る必要があります。この動作は ズームバック と呼ばれます。



    元に戻せないドラッグアンドドロップ操作を完了する前に、確認を求めてください。 たとえば、ユーザにはフォルダを開いてドロップされた項目を削除する権限がないため、ユーザがファイルを書き込み専用フォルダにドラッグすると、Finder は確認を求めます。


    ドロップされたコンテンツがプロセスを開始するときには、追加のフィードバックを提供します。 ユーザが印刷などのタスクを表すアイコンに項目をドロップした場合は、タスクが開始されたことを示し、ユーザにタスクの進行状況を通知し続けて下さい。


    ドロップされた項目から関連部分を抽出します。 たとえば、ユーザが連絡先アプリから メール メッセージの [受信者へ]フィールドに person をドラッグすると、名前とメールアドレスのみが受け入れられ、連絡先の残りのアドレス情報は受け入れられません。


    コンテンツがドロップされた後、それに応じて選択を更新します。 選択したコンテンツを同じコンテナ内の新しい場所にドラッグすると、新しい場所で選択されたままになります。選択したコンテンツを別のコンテナにドラッグすると、そのコンテンツは新しい場所で選択され、以前の選択はすべて解除されます。


    ドロップされたテキストに適切なスタイルを適用します。 宛先が同じスタイルのテキスト属性をサポートしている場合、ドロップされたテキストは元のフォント、書体、およびサイズの属性を維持する必要があります。それ以外の場合、ドロップされたテキストは、宛先のフォント、書体、およびサイズの属性を想定する必要があります。


    ドラッグされたデータの共有


    あなたのアプリから Finder にコンテンツを人々がドラッグできるようにしてください。 理想的には、このコンテンツを、あなたのアプリにドラッグして戻したり、アプリで開ける形式で出力します。たとえば、カレンダーを使用すると、ユーザはイベントを .ics ファイルとして Finder にドラッグできます。このファイルは、カレンダーで開いたり、他のユーザと共有したりできます。

    ヒント

    一部のアプリは、ドラッグされたコンテンツをクリッピングで出力します。これは、ドラッグされたコンテンツを保存するための一時的なコンテナです。生成された後、クリッピングを新しい宛先にドラッグできます。ほとんどのシステムアプリでは、ユーザはテキストをクリッピングとして Finder にドラッグし、後でクリッピングをテキストフィールドまたは他の場所にドラッグできます。クリッピングはクリップボードとは関係がないことに注意してください。ドラッグアンドドロップのクリッピングを生成してもクリップボードには影響しません。







    前:データ入力 次:ファイル処理

    目次

    Xcode の新機能



    macOS

    テーマ

    macOS 11 の新規事項

    視覚的インデックス


    アプリの構造

    フルスクリーンモード

    ロード

    モダリティ

    搭載

    優先

    状態の復元

    セキュリティ


    ユーザの操作

    アカウント

    データ入力

    ドラッグアンドドロップ

    ファイル処理

    ゲームコントローラ

    ヘルプ

    キーボード

    マウスとトラックパッド

    ユーザフィードバックの提供

    許可の要求


    システムの能力

    自動セーブ

    ドック

    Finder

    ミッションコントロール

    通知

    印刷

    クイックルック

    格付けとレビュー

    検索とスポットライト


    視覚的デザイン

    アニメーション

    カラー

    ダークモード

    透明さ

    印刷


    アイコンとイメージ

    イメージのサイズと解像度

    アプリのアイコン

    文書のアイコン

    多項目のドラッグイメージ

    システムのイメージ


    ウインドウとビュー

    ウインドウの構造

    アラート

    ボックス

    コラムビュー

    ダイアログ

    イメージビュー

    アウトラインビュー

    パネル

    ポップオーバー

    スクロールビュー

    シート

    サイドバー

    スプリットビュー

    タブビュー

    表のビュー

    ツールバー

    Web ビュー

    Drawer(引き出し)*

    プラカード*


    メニュー

    メニューの構造

    コンテクストメニュー

    ドックメニュー

    メニューバーのメニュー


    ボタン

    チェックボックス

    開示コントロール

    勾配ボタン

    ヘルプボタン

    イメージボタン

    ポップアップボタン

    プルダウンメボタン

    押しボタン

    ラジオボタン

    スコープボタン

    スイッチ

    ベベルボタン*

    ラウンドボタン*


    フィールドとラベル

    コンボボックス

    ラベル

    検索フィールド

    テキストフィールド

    トークンフィールド


    セレクタ

    色の源

    日付の選別

    イメージウェル

    パスコントロール

    セグメントコントロール

    スライダ

    ステッパ


    インジケータ

    レベルインジケータ

    プログレスインジケータ


    タッチバー

    タッチバー概観

    視覚的デザイン

    グリフとイメージ

    コントロールとビュー


    拡張機能

    アクション拡張機能

    オートメータアクション

    ファインダー同期拡張機能

    メニューバーの追加

    サービス

    共有拡張機能



    iOS


    tvOS


    watchOS


    Technologies

    アクセシビリティ

    序文

    ベストプラクティス

    ユーザとの対話

    ナビゲーション

    テキストのサイズと太さ

    色とコントラスト

    外観の効果と動き

    コンテンツ


    AirPlay

    メディア再生

    アイコン

    社説


    アプリクリップ

    序文

    ユーザ体験

    アプリクリップカード

    アプリのクリップコード

    印刷ガイドライン

    法的要件


    Apple Pay(アップルペイ)

    序文

    Apple Pay の提供

    チェックアウトと支払い

    エラー処理

    サブスクリプションと寄付

    ボタンとマーク

    社説


    拡張現実

    ホームスクリーンのアクション

    マルチタスクと複数のウィンドウ

    通知

    印刷

    クイックルック(検索)

    評価とレビュー

    スクリーンショット

    TV プロバイダー


    CareKit

    序文

    データとプライバシー

    ビュー

    ユーザー体験

    シンボルと商標化


    CarPlay

    序文

    オーディオアプリ

    自動車メーカーのアプリ

    伝達および VoIP アプリ


    アーキテクチャ

    バッジ付け

    エラー処理

    ロード

    ナビゲーション

    テスト


    対話

    オーディオ

    車のデータ

    iPhone

    ノブとコントロール

    タッチスクリーン

    Voice (Siri)


    視覚的デザイン

    アニメーション

    商標化

    レイアウト

    タイポグラフィ(印刷)


    アイコンと画像

    画像のサイズと解像度

    アプリのアイコン

    カスタムアイコン

    システムアイコン


    システム要素

    アクションシート

    活動指標

    アラート

    ボタン

    コレクション

    ラベル

    ナビゲーションバー

    スクロールビュー

    タブバー

    テキストビュー

    Web ビュー


    CareKit

    序文

    データとプライバシー

    ビュー

    ユーザ体験

    シンボルと商標化


    ゲームセンター

    序文

    アクセス・ポイント

    ダッシュボード

    実績

    順位表

    マルチプレイヤー

    カスタムダッシュボードリンク


    象形文字

    HealthKit

    HomeKit

    序文

    用語とレイアウト

    設定

    Siri の作用

    カスタム機能

    アイコン

    社説


    iCloud

    アプリ内購入

    序文

    自動更新可能なサブスクリプト


    inclusion(含有)

    ライブ写真

    Mac Catalyst

    序文

    アプリの構造

    ユーザとの対話

    視覚的デザイン

    Mac 慣用句


    マシン学習

    序文

    マシン学習の役割


    入力

    明示的なフィードバック

    暗黙のフィードバック

    較正

    訂正


    出力

    間違い

    複数のオプション

    自信

    帰属

    制限事項


    地図(Maps)

    アプリとウェブサイトの地図

    Apple Watch の地図

    屋内の地図


    ResearchKit

    序文


    右から左へ

    序文

    テキストと文字

    コントロール

    画像と象形文字


    SharePlay

    Apple でサインイン

    序文

    データ管理

    ボタン


    Siri

    序文

    システムインテント

    カスタムの注視

    ショートカットと提案

    編集ガイドライン


    ソーシャルメディア

    SF Symbols

    Wallet(財布)

    序文

    許可証のデザイン


    小道具

    序文

    コンテンツ

    編集と対話

    デザイン




    Human Interface Guidelines


    概要


    リソース


    ビデオ


    新規事項



    ニュース

    見つける

    デザイン

    開発

    配信

    サポート

    アカウント
    (セキュリティの面で、リンクを提供できませんでした。)













    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ