ユーザーの操作
iPad と Mac はどちらも、マルチタッチディスプレイ、キーボード、マウス、トラックパッドなど、さまざまなデバイスからのユーザー入力を受け入れます。通常、タッチ操作は iOS の規則を通知し、一方キーボードとマウスの操作は macOS の規則を通知します。Mac Catalyst であなたの Mac アプリを作成する場合は、まず iPad と Mac でのユーザー操作の違いを確認してください。次に、ユーザーがあなたの Mac アプリをどのように操作するかを考え、macOS の規則に従うように変更を加えて下さい。
たとえば、Mac ユーザーは通常、コンテンツとコントロールを操作するために 2 段階のプロセスを使用します。最初にオブジェクトを選択し、次にそれに対してアクションを実行します。これらのステップの間に時間が経過するため、人々がアクションの選択を完了するまで、オブジェクトの選択状態が維持されなければなりません。Mac ユーザーは、使用する入力デバイスに関係なく、選択の持続性 と呼ばれるこの動作を期待しています。
一方、iPad ユーザーはジェスチャ (選択の持続性にほとんど依存しない) を介してアクションを実行するか、キーボード、マウス、またはトラックパッドを使用してアクションを実行できます。
プラットフォームごとの規則がユーザー体験にどのように影響するかを示す他の例を以下に示します。
iOS ユーザーの操作を Mac の操作に変換するときは、プラットフォームの規則に準拠した方法でオブジェクトを操作できるように重点を置いてください。Mac ユーザーは、キーボードとマウスまたはトラックパッドを同時に簡単に使用できるという事実を利用してください。たとえば、コレクションビューで人々が複数のセルを選択したり、矢印キーを使用したり、文字キーや数字キーを押したり、キーボードショートカットを使用したりして永続的な選択を変更できます。
アプリのメニュー
Mac では、スクリーン上部のメニューバーにより、アプリとシステムの両方を制御するコマンドの一貫した場所が人々に提供されます。メニューバーには、常に使用可能なシステムレベルのコマンドを一覧表示する Apple メニューに加えて、現在のアプリの標準メニューとカスタムメニューが含まれています。Mac ユーザーは、すべての Mac アプリがメニューバーでほとんどのコマンドを使用できることを期待しています。iOS アプリはコントロールを使用してメイン UI にコマンドを表示するため、すべてのアプリコマンドの論理的で直感的なメニューバーの場所を見つけることは、適応プロセスの重要な部分です。
あなたのアプリの Mac バージョン用のメニューバーのメニューを設計するには、人々が実行できるすべてのアクションをリストし、それらを標準のメニューバーのメニューで定義されたカテゴリにグループ化することから始めます。
注意
ほとんどの Mac アプリには、[表示] メニューと [ウィンドウ] メニューが含まれています。これらのメニューは似ているように見えますが、目的が異なります。人々は [表示] メニューを使用して、アプリウィンドウの外観をカスタマイズし、さまざまな機能領域間を移動します。一方、[ウィンドウ] メニューを使用して、アプリ内のウィンドウのコレクションをナビゲートし、整理し、および管理します。ガイダンスについては、メニューバー を参照してください。
あなたのリストの一部のアクションが標準のメニューバーのメニューでは意味をなさない場合は、カスタムメニューを追加する必要があるかもしれません。Mac アプリは、多くの場合、コアアプリオブジェクトまたはコアアプリワークフローのいずれかに関連したコマンドのカスタムメニューバーのメニューを追加します。たとえば、macOS の メール は、[メッセージ] メニューと [メールボックス] メニューを使用して、これらの基本的なアプリオブジェクトを操作するコマンドを一覧表示します。対照的に、Keynote は [配置] メニューを使用して、スライドデッキ内のオブジェクトを配置するコアワークフローに関連するコマンドを一覧表示します。
あなたのアプリのアクションをメニューにグループ化したら、各メニューの項目を意味のある順序に並べます。各標準メニューは項目の推奨順序を定義しているため、あなたがサポートする項目についてはこの順序に従うことが重要です。たとえば、Mac ユーザーは、[ファイル] メニューには以下の順序で項目が表示されることを期待します。
カスタムメニューバーのメニューでは、重要性、使用頻度、またはあなたのアプリで意味のある別のスキームに従って項目を並べ替えます。メニューバーのメニューには、項目を論理的にグループ化するのに役立つサブメニューと区切りを含めることもできます。ガイダンスについては、メニュー を参照してください。
開発者用ノート
カスタムメニューを追加および削除するには、UIMenuBuilder (UIMenuBuilder) を使用し、あなたの iOS アプリのコマンドを表すメニュー項目を UICommand (UICommand) でメニュー項目として追加します。
キーボード入力
Mac ユーザーは、アプリが一般的なコマンドのキーボードショートカットなどの macOS キーボード規則をサポートすることを期待しており、通常、各キーのコマンドは対応するメニューバーのメニュー項目に由来しています。
ユーザーがキーボードを使用してあなたの Mac アプリをナビゲートできるようにします。 たとえば、各タブなどの各主要なビュー領域をキーボードショートカットの ⌘1、⌘2 などに割り当てます。次に、キーのコマンドを [表示] メニューに追加します。
開発者用ノート
コマンドのキーボードショートカットをサポートするメニュー項目を追加するには、UIKeyCommand (UIKeyCommand) を使用します。開発者向けガイダンスについては、メニューバーとユーザーインターフェイスへのメニューとショートカットの追加 (Adding Menus and Shortcuts to the Menu Bar and User Interface) を参照してください。
あなたのメニューのすべての一般的なコマンドのキーボードショートカットをサポートして下さい。 キーボードを使用する Mac ユーザーと iPad ユーザーの両方が、この変更の恩恵を受けることができます。例えば:
ガイダンスについては、カスタムキーボードショートカット を参照してください。
開発者向けガイダンスについては、メニュー要素を使用してアクションにアクセス (Accessing Actions Using Menu Elements) および 削除メニュー要素の利用 (Take advantage of the delete menu element) を参照してください。
支援
iOS アプリは通常、アプリ内または Web サイトの情報セクションにユーザーを誘導することで支援を提供しますが、一方 Mac ユーザーは、アプリが支援メニューバーのメニューからスクリーン上の支援文書を提供することを期待しています。ガイダンスについては、ヘルプメニュー および ヘルプの提供 を参照してください。
コンテキストメニュー
コンテキストメニューは、人々がメニューバーのメニューを開かなくても、オブジェクトに対して実行できるアクションを見つけるのに役立ちます。あなたの iOS アプリで コンテキストメニュー をサポートする場合、システムはそれをあなたのアプリの macOS バージョンのコンテキストメニューに自動的に変換します。
Mac ユーザーに最高の体験を提供するには、コンテキストメニューをサポートする追加の場所を探してください。たとえば、人々があなたのアプリ内のオブジェクトに対して実行できる一般的なアクションがある場合は、これらのアクションを一覧表示するコンテキストメニューを追加して下さい。オブジェクトを表すビューにコンテキストメニューを追加することもできます。たとえば、Finder のフォルダオブジェクトは、[新しいタブで開く]、[名前の変更]、[複製] などのアクションを提供するコンテキストメニューをサポートします。
iOS 14 以降では、人々が選択できるアイテムまたはアクションを一覧表示するプルダウンメニューまたは単にメニューをボタンに表示できます。Mac Catalyst で Mac アプリを作成すると、メニューは自動的に macOS メニューになります。ガイダンスについては、プルダウンボタン を参照してください。
ジェスチャ
Mac Catalyst であなたの Mac アプリを作成すると、ほとんどの iOS ジェスチャが自動的に変換されます。例えば:
iOS ジェスチャ... | マウス操作への変換 |
タップ | 左または右クリック |
タッチアンドホールド (長押し) | クリックアンドホールド (長押し) |
パン | 左クリックしてドラッグ |
iOS ジェスチャ... | トラックパッドジェスチャへの変換 |
タップ | クリック |
タッチアンドホールド (長押し) | クリックアンドホールド (長押し) |
パン | クリックアンドドラッグ |
ピンチ (つまむ) | ピンチ (つまむ) |
回転 | 回転 |
具体的な例として、人々がオブジェクトをタップしてドラッグできる iOS アプリを考えてみましょう。macOS では、人々はオブジェクトをクリックしてホールドしてからドラッグします。原則として、あなたの Mac アプリでは標準のコントロールとビューを使用するようにしてください。これらはほとんどの標準的なクリックとジェスチャに自動的に応答するからです。システム全体のアプリ間ジェスチャを再定義することは避け、カスタムジェスチャは慎重に定義してください。さらに、誰もがマウスやトラックパッドを持っているわけではないため、特定のデバイスやジェスチャが利用できるかどうかに依存しないでください。また、人々はあなたの知らないうちにジェスチャを無効にしたり、再定義したりすることもあります。ガイダンスについては、ポインティングデバイス を参照してください。
開発者用ノート
ピンチと回転ジェスチャの 2 つのタッチは、各タッチの下のビューではなく、ポインターの下のビューに送信されます。
リソース
関連
開発者用文書
Mac Catalyst (Mac Catalyst)