第12章


メニュー


メニューは、ユーザが選択できるもの—コマンド、属性、状態—の中から、項目を一覧の形で提示します。

メニューは、「見て、指し示す」インタフェース原則を基にしています。人々はコマンドやオプションを暗記する必要はありません。なぜなら、いつでもすべての選択肢を見ることができるからです。

メニューは、ユーザが頻繁に参照するユーザインタフェース要素です。特に、他のインタフェースが無いことが判っている機能を探しているときに顕著です。メニューが正しく整理され、言葉遣いを明確にして、正しくふるまうことの保障は、あなたのアプリケーションの機能を探索し、利用するユーザの能力にとって重要です。

メニューはMac OS Xのインタフェースにおいて、いくつかの異なる形で現れます。この章では、メニューバーのプルダウン【引き出し】メニュー、Dockメニュー、コンテキストメニューについて説明します。これらのメニューの種類は図 12-1で図示されます。

図 12-1 メニューバー、Dock、コンテキストメニュー

メニューバーメニュー Dockメニュー コンテキストメニュー

コントロールの一部であるメニュー—たとえば、ポップアップメニュー、コマンドポップダウンメニュー、ポップアップアイコンボタン及び傾斜ボタンのメニュー—については、「コントロール」(231ページ)で述べています。この章からのいくつかの概念は、これらの種類のメニューにも同様に適用できる点に注意してください。

メニューのふるまい

人々がメニューを使用するとき、普通は、データの内部で選択範囲を作成し、次にメニュー項目を選択します。

このふるまいは、何に対して【操作が】行われる必要があるのかを見分け、次にメニュー項目を選択することで動作を特定するという、「見て、指し示す」原則に従っています。

メニューで項目を選択するために、ユーザはポインタをメニュータイトルの上に置き、そして求める項目までドラッグします。各項目は選択されるのに応じて強調表示されます。

ユーザがメニュー項目にカーソルを重ねて、マウスボタンを離さない限り、動作は起こりません(「マウスとその他のポインティングデバイス」(89ページ)を参照)。マウスボタンを離す前であれば、いかなる動作も開始させずに、ポインタをメニューの外へ移動させることができます。

彼らは、実際に動作を行う必要なく、どんな機能が利用できるかを知るために、メニューを開いて目を通すことができます。メニュー項目が活性化されると、短い間点滅します。

また、ユーザはメニューをクリックでも開くことができます。ユーザがマウスボタンを押し続けなくても、メニューは開いたままとなります。ユーザはさらに、項目を選択するためにポインタを移動したり、メニューの表示を消すことなく、画面上のどこへでもポインタを移動させることができます。一度メニューが開かれると、他の動作が閉じることを強制するまで、開いたままとなります。

そのような動作に含まれるのは…

  • メニューからコマンドを選択すること
  • 他のメニュータイトルへポインタを移動すること
  • メニューの外側をクリックすること
  • システムが起こした警告表示
  • システムが起こしたアプリケーション切り替え、または終了

メニューやサブメニューの中の、すべての項目が使用不能であったとしても、メニューやサブメニューのタイトルは淡色表示されません。ユーザはこの状態でもメニューを開くことはできますが、そのすべての項目は、現在の文脈では利用できないことを示すために淡色表示されます。

図 12-13(161ページ)は、利用できないメニュー項目を持つメニューの、開いた状態と、閉じた状態を示します。

一般的な規則の通り、長いメニューを作成することは避けましょう。長いメニューはユーザが目を通しにくく、圧倒しがちです。もし、一つのメニューの中に、あまりに多くの項目があることに気がついたら、これらを分類しなおしてみましょう。これらの項目のいくつかは、他のメニューの中のほうが、より自然に収まることに気がつくかもしれません。

もしメニューが、画面上に見せられないほど多くの項目を含んでいる場合は、ユーザがすべてのメニュー項目を利用できるように、メニューをスクロールさせることができます。スクロールするメニューは図 12-2で示されます。

図 12-2 スクロールするメニュー

スクロールするメニューの底辺にある、下向きの表示は、さらに項目があることを示しています。ユーザが下へスクロールを始めると、メニューの天辺に上向きの表示が現れて、この方向に見えなくなった項目があることを示します。ユーザが見えている最後の項目を過ぎてドラッグすると、メニューはスクロールしてさらに項目を表示します。最後の項目が現れると、下向きの表示は消えます。

もし、ユーザが天辺に向かってドラッグし戻したら、メニューは同じやり方で下にスクロールして戻ります。次回メニューが開かれると、元の状態で現れます(底辺に下向きの表示を伴って)。

あなたのアプリケーションを、スクロールするメニューを搭載することを意図してデザインしてはいけません。これらは、ユーザがカスタマイズできるメニューにたくさんの項目を追加したときや、メニューの機能によって自身への項目の追加が起こるとき(たとえば、Finderのウインドウメニュー)にのみ存在すべきです。

メニューの要素をデザインする

メニュー要素には、メニュータイトルとメニュー項目を明示するための単語(と、時としてアイコン)、そしてキーボードショートカット、階層メニュー、分割線、メニュー項目の状態を明示するための記号が含まれます。これらの要素は、図 12-3で図解されています。

図 12-3 メニュー要素

メニュータイトル
階層メニュー(サブメニュー)表示
キーボード同義操作
省略文字
メニュー項目
サブメニュー
分割線

メニューにタイトルを付ける

メニュー(及びサブメニュー)のタイトルは、メニューの中の項目を適切に表していなければなりません。たとえば、フォントメニューには、Helvetica や Geneva のような、フォントファミリの名称を含めることができますが、「カット」や「ペースト」といった、編集を行うコマンドを含めるべきではありません。

メニュータイトルにアイコンを用いることは避けましょう。

メニュータイトルは、明快さを失わない範囲で、できるだけ短くしましょう。

メニュー項目に名前をつける

メニュー項目の名前は、オブジェクトに対して行われる動作か、オブジェクトに対して適用される属性のどちらかである必要があります。

  • 動作は、ユーザが項目を選択したときに起こる動作を宣言した、動詞、もしくは動詞句とします。

    たとえば、「保存」は、「私のファイルを保存する」という意味であり、「コピー」は、「選択されたデータをコピーする」という意味になります。あなたの動作メニューコマンドも、動作を示す動詞の基本(もっとも単純な)形を用いて、同じ方法ではじめる必要があります。

  • 属性は、コマンドが行う変化を説明した、形容詞、もしくは形容詞句とします。メニューにおける形容詞は動作を暗示し、また「選択されたオブジェクトを…へ変化させる」という文章に当てはまる必要があります。—たとえば、「ボールド」や「イタリック」です。

メニュー項目が利用できないとき—たとえば、選択されたオブジェクトや、選択されたオブジェクトの現在の状態には適用できないためであるとか、何も選択されていないために—、項目はメニューの中で淡色表示され、ユーザがポインタをその上に移動したときも、強調表示されてはいけません。

あなたのメニューでタイトル形式の大文字始まりを使用しましょう。この形式の詳細は、「インタフェース要素のラベルと文字列の大文字始まり」(128ページ)を参照してください。

メニュー項目の後の省略文字(…)は、コマンドを完了させるために補足情報が要求されることをユーザに示します。いつ、メニュー項目で省略文字を使用するべきかの詳細は、「省略文字を使用する」(123ページ)を参照してください。

場合によっては、動的メニュー—ユーザが修飾キーを押しているとき変化するコマンド—を提供するのが適切なことがあります。たとえば、もしユーザがFinderでウインドウメニューを開き、そこでOptionキーを押すと、メニュー項目のいくつかは、図 12-4に示す通り変化します。システムは、Optionで切り替え可能なコマンドも含めて、もっとも幅の広い項目を収納できるように、メニューの大きさを調節します。

図 12-4 動的メニュー項目

修飾キーが押されていない

修飾キーが押されている

Carbon:SetMenuItemAttributes【関数?】に、kMenuItemAttrDynamic属性を使用してください。

Cocoa:あるメニュー項目が、他の項目の代わりであること明示するために、NSMenuItemのsetAlternate:メソッドを使用してください。

メニューでアイコンを使用する

あなたのアプリケーションメニューのタイトルには、アイコンではなく文字列を使用するべきです。

オペレーティングシステムは、タイトルに文字列の変わりにアイコンを用いるアプリケーションメニューを三つ提供します。アップルメニュー、Spotlight検索欄、そして、アプリケーションにスクリプトがインストールされていると表示される、AppleScriptメニューです。メニューバーステータス項目もまたアイコンです。

これらのアイコン(AppleScriptメニューは例外)は、活性アプリケーションが何であるかを問わず、常に見えているので、ユーザはこれらの記号が何を意味しているのかを学びます。これらはメニュータイトルとしての、記号の特別な使用例です。

あなたのアプリケーションの特定の機能に関連付けられていることを、ユーザが学ぶことのできるアイコンや、何か固有のものを表しているアイコンであれば、あなたはメニュー項目の中でアイコンを使用することができます。たとえば、図 12-5に示すように、Finderは「移動」メニューの中でアイコンを使用しています。なぜなら、ユーザはこれらを、サイドバーに見ることのできるアイコンと関連付けることができるからです。

図 12-5 Finderの「移動」メニューにおけるアイコン

Safariもまた、図 12-6に示すように、いくつかのウェブページで表示される標準的なアイコンを用いて、ユーザにウェブページとメニュー項目との関連付けをできるようにします。

図 12-6 Safariの履歴メニューにおけるアイコン

もしあなたのメニューにアイコンを含めるのであれば、重要な価値を付け加える場合のみにしてください。すべてのメニュー項目に含めてはいけません。あまりにも多くのアイコン(もしくは、ひどいデザインのアイコン)を含むメニューは、散らかって見えることがあり、読みにくいものです。

メニューで記号を使用する

メニューであなたが補足的な情報を表すために使用できる、少数の標準的な記号が存在します。これらは表 12-1に挙げられており、以下の文で記述されています。その他の、勝手に考えた記号をメニューで使用してはいけません。これらは見た目の乱雑さを増し、人々を混乱させるでしょう。

表 12-1 メニューでの使用が許容される文字

文字 意味
(チェックマーク) ウインドウメニューにおいて、活性の文書を示します。
他のメニューでは、選択範囲全体に適用される設定を示します。
(ダッシュ) 選択範囲の一部にのみ適用される設定を示します。
(黒丸) 保存されていない変更のあるウインドウを示します。
(菱形) ウインドウメニューにおいて、現在Dockにしまわれている文書を示します。

ウインドウメニューにおいて、チェックマークは活性の文書名の隣に現れる必要があります。また、チェックマークは他のメニューにおいて、選択範囲全体に適用される設定を示すためにも用いられます。

あなたは、チェックマークを相互排他の属性のグループ(フォントの大きさのように、ユーザはグループ内の項目を一つだけ選択できる)、もしくは、蓄積される属性のグループ(ボールドやイタリックのように、一度に一つ以上の項目を選択できる)に使用することができます。

ダッシュは、選択範囲の一部にだけ適用される属性を示すために使用してください。たとえば、選択されている文字列に二つのスタイルが適用されていたら、それぞれのスタイルの名前の隣にダッシュを付けましょう。適切なときは、あなたは同じメニューの中でチェックマークとダッシュを組み合わせることができます。メニューにおけるチェックマークとダッシュの使いかたの詳細は、「切り替え式のメニュー項目」(156ページ)を参照してください。

注:状態が混在する文字列から、すべての書式を取り除くために、「標準」のようなメニューコマンドを含めてください。

保存されていない変更のある文書の隣には黒丸【bullet】を、ユーザがDockへしまった文書には菱形【diamond】を使用してください。保存されていない変更のある、しまわれた文書は、菱形だけにしてください。もし、活性のウインドウに保存されていない変更があれば、ウインドウメニューのチェックマークは黒丸で上書きされる必要があります。

Carbon:標準のウインドウメニューにおいて、これらの記号は自動的に管理されます。

もしくは、SetItemMark関数を、活性文書に対してはchar型引数kCheckCharCodeと共に使用して、保存されていない変更のある文書に対してはkBulletCharCodeを、しまわれた文書にはkDiamondCharCodeを使用してください。これらの定数は、ウインドウメニューにおいてのみ動作します。

Cocoa:これらの記号はCocoaフレームワークによって管理されます。

図 12-7と図 12-8は、メニューにおける記号の正しい使用例、誤った使用例を示しています。

図 12-7 メニューにおける記号

黒丸
文書に保存されていない変更があることを示します。

チェックマーク
活性ウインドウを示します。

菱形
ウインドウがDockの中へしまわれていることを示します。

ダッシュは選択範囲が混在した状態を表すことを示すために使用されます。
(ボールドとイタリックの両方が使用されています)

図 12-8 メニューで勝手な記号を使用してはいけません。

もしスタイルメニューがあれば、あなたは、ユーザがメニュー項目のもたらす効果を見ることができるように、実際のスタイルでメニュー項目を表示してもよいでしょう。スタイルメニュー以外のメニューでは、文字列のスタイルを使用してはいけません。

切り替え式のメニュー項目

切り替え式【トグル】のメニュー項目は、ユーザに選択されるたびに二つの状態の間で変化します。切り替え式のメニュー項目には三つの種類があります。

  • 反対の状態を表す二つのメニュー項目の組み合わせ。

    例としては、「グリッド【升目】のオン」と「グリッドのオフ」。

    現在有効な状態は、その隣にチェックマークがつきます。もし、メニューの空間に余裕があれば、両方の項目を表示するのは良い考えです。(その状態に応じて名前が変化するよりも、)それぞれの項目の効果について、混乱する機会が減るためです。

  • 現在の状態を反映して名前が変化する、単一のメニュー項目。

    例としては、「ルーラ【定規】を表示」と「ルーラを隠す」。

    あなたのメニューに、両方の状態を表示する空間が無いときに、この種類を使用しましょう。

    反対の動作を表す、二つの動詞を用いてください。コマンドの名称には、確実に曖昧さが無いようにしてください。たとえば、「グリッドをオンにする」と「グリッドをオフにする」には曖昧さはありません。けれども、「グリッドを使用」コマンドを選択することは、グリッドをオン(コマンドを選択した結果起こることを説明している場合)にもオフ(現在の状態を説明している場合)にもすることができます。

  • 有効であるときに隣にチェックマークが付くメニュー項目。

    例としては、ボールドのようなスタイル属性。

    この種類の切り替え式の項目を、グリッドやルーラといった機能の有無を表すために使用してはいけません。チェックマークの付いている機能が有効であることを示しているのか、コマンドを選択することで機能がオンになるのか、不明瞭です。

図 12-9は、切り替え式のメニュー項目の正しい例、誤った例を示します。

図 12-9 曖昧な切り替え式メニュー項目は避けましょう。

(チェックマーク)
曖昧さの無いコマンド
「グリッドをオンにする」→「グリッドをオフにする」

(一時停止マーク)
「グリッドを使用」を選択することで
二つの動作のどちらかの結果が起こりえます。
「グリッドを使用」
→「グリッドを使用しない」
→「(チェックマーク)グリッドを使用」

メニューで項目をグループ化する

メニュー項目を論理的にグループ化することは、あなたのメニューを整理するうえで最も重要な方向性です。メニューにおける項目のグループ化は、関連する作業のためのコマンドの位置を、すばやく特定することを容易にします。

一般的に、もっとも頻繁に用いられる項目をメニューの天辺に配置しますが、厳密に使用頻度を元に整理するよりも、関連する項目でグループを作るようにします。たとえば、「次を検索」や「再び検索」コマンドはそう頻繁には使用されないと思われますが、「検索」コマンドのすぐ下に現れるべきでしょう。

動作と属性の両方を含むメニューでは、動作と属性を同じグループに置いてはいけません。

グループは属性と相互依存しています。これらは相互排他の属性グループ(フォントの大きさのように、ユーザは項目を一つだけ選択できる)、もしくは、蓄積される属性グループ(ボールドとイタリックのように、ユーザは複数の項目を選択できる)とすることができます。

もし、メニューが用語を2回以上繰り返していたら、代わりに、その用語専用のメニューか、階層メニューを検討して見ましょう。たとえば、もしあなたが、「情報を表示」、「カラーパネルを表示」、「レイヤーを表示」、「ツールボックスを表示」、等といったコマンドを必要とするのであれば、あなたは表示メニューを作成するか、「表示」という項目のサブメニューに切り分けることができます。

何本まで分割線を使用するか、という問題は、ある部分は美観に基づく決定であり、ある部分は使いやすさに基づく決定です。図 12-10は、正しいバランスのグループ化を描いたメニューを示しており、さらに比較対照として、グループ化が不十分なもの、グループ化が過剰なものの、二つのメニューの例を示します。あなたのメニューで何本の分割線を使用するかを決定しようとするときは、この図を視覚的な指針として利用してください。

図 12-10 メニューにおける項目のグループ化

適切なグループ化 多すぎるグループ数 グループ数の不足

階層メニュー(サブメニュー)

あなたは、メニューバーにさらに空間を設けずに、追加のメニュー項目の選択肢を提供するために、階層メニューを使用することができます。ユーザがサブメニュー表示の付いたメニュー項目を指したとき、サブメニューが現れます。

サブメニューは、キーボードショートカット、状態の目印(チェックマークのような)、その他を含めて、メニューの機能はすべて持っています。

サブメニューはインタフェースに複雑さを加えて、物理的により使用が難しくなるため、あなたはメニューバーに納まらないほど多くのメニューがあるときか、密接に関連するコマンドがあるときにのみ、これを使用すべきです。

サブメニューの階層は一つだけ使用するようにしてください。

もし、一つのサブメニューに五つ以上の項目を格納するのであれば、独自のメニューを与えることを検討してください。

あなたがサブメニューを使用するときは、そこに格納された項目を選択する上で、論理的に関連性のあるメニューに含めてください。サブメニューのタイトルは、それが格納している選択肢を明確に表現する必要があります。

階層メニューは、(動作よりも)属性のサブメニューを提供するために最適です。

常に、メニュー項目を字下げするのではなく、階層メニューを使用してください。字下げは、サブメニューほど明確にメニュー項目間の相互関連性を表しません。

けれども、あなたのアプリケーションのDockメニューに、カスタム情報(状態情報のような)を表示するときは、字下げを用いることができます。

図 12-11は、階層メニューの例を示しています。

図 12-11 階層メニュー

メニュータイトルと同じく、すべてのサブメニューコマンドが同時に使用不能(淡色表示)であっても、サブメニューのタイトルは変わることなく表示されます。ユーザは現在の文脈において利用可能か否かに関わらず、サブメニューの内容を見ることができる必要があります。

メニューバーとそのメニュー

メニューバーはメイン画面の天辺を横切って広がり、プルダウンメニューを格納しています。画面の天辺には唯一つのメニューバーが存在します。ウインドウにメニューバーを配置してはいけません。メニューバーは、人々がコマンドを見つけることのできる一貫性のある場所を提供します。

Finderを含む各アプリケーションは、少数の標準メニュー、アプリケーション固有のメニュー、メニューエクストラから構成される、独自のメニューバーを持ちます。

メニューバーとは…

  • 常に見えており、利用可能です。スライドショーの間のような状況は除きます(後述する議論を参照)。
  • 常にこれらを含んでいます…
    • アップルメニュー(オペレーティングシステムによって提供される)
    • Spotlightアイコン(オペレーティングシステムによって提供される)
    • アプリケーションメニュー(アプリケーション名、もしくは、余白が限られている場合は適切な略語でタイトルを付けます)
    • ウインドウメニュー
  • あなたのアプリケーションで意味があれば、以下のメニューを含むこともあります。
    • ファイルメニュー
    • 編集メニュー
    • フォーマットメニュー
    • 表示メニュー
    • ヘルプメニュー
    • アプリケーション固有のメニュー
  • ユーザによって決定されたメニューエクストラを含むこともあります。

メニューバーにおける、アプリケーション固有のメニューの順序は、あなたのアプリケーションにおけるオブジェクトの、自然な階層構造を反映している必要があります。

この自然な階層構造が何であるかを判断する指針とするため、あなたのアプリケーションの行う作業の、ユーザの心のモデルを調査しましょう(ユーザの心のモデルを発見するための詳細は、「ユーザの心のモデルを反映せよ」(40ページ)を参照してください)。

たとえば、あなたのアプリケーションが、ユーザがコンピュータアニメーションを作成することを助けるのであれば、アプリケーション固有のメニューとしては、風景、人物、背景、投影図があるでしょう。ユーザはおそらく、投影図を、風景を含んだ高水準の存在として捉えており、そのそれぞれが背景と人物を含むので、これらのメニューの自然な順番は、投影図、風景、背景、人物となります。

一般的に、高水準の、より普遍的なオブジェクトを扱うコマンドを表示するメニューは、メニューバーのより左の方へ配置して、もっと具体的な存在に焦点を合わせるメニューは、右のほうへ配置してください。

図 12-12 Finderが活性のときに表示されるメニューバー

Finder固有のメニュー
アップルメニュー アプリケーションメニュー メニューバーエクストラ Spotlightアイコン

アプリケーションのメニューをすべて表示するには、空きが不十分な場合は、メニューバーステータス項目【メニューバーエクストラ】は省略されます。すべてのメニューを表示するために、それでもまだ不足する場合は、アプリケーションのメニューは、右端のメニューから省略されていくでしょう。

もし、あなたのアプリケーションが、(スライドショーのように)全画面画像を表示できるのであれば、ユーザにメニューバーを隠すことができるようにしてもよいでしょう。

この機能を実装するのであれば、ボタンのような、ユーザにメニューバーを再表示させるための、明確に視認できる手段を提供してください。見えるボタンが無ければ、Escapeキーを押すか、マウスを画面の天辺に移動することで、メニューバーを表示させる必要があります。

メニューのタイトルは、すべてのメニュー項目が同時に使用不能(淡色表示)であっても、淡色表示されずに【普通に】表示されます。ユーザは現在使用可能であるか否かに関わらず、メニューの内容を見ることができる必要があります。

図 12-13 メニューのタイトルは、すべての項目が使用不能であっても淡色表示されません。

Carbon:Carbon User Experience DocumentationのMenu Manager Referenceを参照してください。

Cocoa:Cocoa User Experience DocumentationのApplication Menus and Pop-up Listsを参照してください。

以下のセクションでは、メニューバーの個々のメニューについて述べています。各セクションは、メニューバーに現れるべきメニューの順番に沿って挙げられています。

アップルメニュー(システムによって提供される)、アプリケーションメニュー、ウインドウメニューの例外を除いた、その他すべてのメニューは任意です。

各セクションの中では、メニュー項目の隣のチェックマークが、あなたのアプリケーションがその項目の動作や属性に対応できない場合を除き、その項目が必須であることを示しています。

印の無いコマンドは、すべてのアプリケーションに対して適切というわけではありません。しかし、もしあなたのアプリケーションにおいて適切であれば、述べられている通りに実装し、表記する必要があります。

【訳文では、チェックマークの代わりに(必須)を用いた。
メニュー項目の名前は基本的にMac OS X 10.4のテキストエディットとFinderを手本にしている。】

もし、メニュー項目に対して、適切なキーボードショートカットがあれば提示しています。チェックマークのある項目を除き、あなたはキーボードショートカットを、頻繁に使用されるコマンドについてのみ実装すべきです。不必要なキーボードショートカットの使用は、あなたのアプリケーションを混乱させることがあります。

プルダウンメニュー項目に対するキーボードショートカット割り当てについての詳細は、「キーボードショートカット」(98ページ)を参照してください。

アップルメニュー

アップルメニューは、ユーザに、いつでも、どのアプリケーションが活性でも、使用できる項目を提供します。

アップルメニューの内容はシステムによって定義され、ユーザや開発者には変更できません。

図 12-14 アップルメニュー

アプリケーションメニュー

アプリケーションメニューは、特定の文書やその他のウインドウによらず、アプリケーション全体に適用される項目を含んでいます。

図 12-15 Mailのアプリケーションメニュー

アプリケーションメニューのタイトル

ユーザが活性アプリケーションを見分ける助けとするために、アプリケーションメニューのタイトルは太字体とします。

メニューバーの割り当てられた空間に収めるために、アプリケーションメニューのタイトルは、できれば一単語、なおかつ最大16文字とすべきです。名前にアプリケーションのバージョン名を含めてはいけません。バージョン情報はアバウトウインドウに属します。

アプリケーション名が長すぎる場合は、短縮名(16文字以下)をアプリケーションパッケージの一部として提供してください。「隠す」、「終了」、「(アプリケーション名)について」の項目も、アプリケーションの短縮名を使用すべきです。

もし、あなたが短縮名を提供しないのであれば、必要に応じて、アプリケーション名は終わりの方から切り詰められます(そして省略文字が加えられます)。

アプリケーションメニューの内容

(必須)(アプリケーション名)について。あなたのアプリケーションの、著作権情報とバージョン番号を含む、アバウトウインドウを開きます(詳細は、「アバウトウインドウ」(206ページ)を参照)。

もし、明示的な短縮名があれば(「アプリケーションメニューのタイトル」(162ページ)を参照)、「(アプリケーション名)について」のメニュー項目で使用してください。

アバウトウインドウの中では完全なアプリケーション名を使用してください。

(必須)環境設定…(Command-,)。あなたのアプリケーションの環境設定ウインドウを開きます。複数ユーザ環境での環境設定の扱いについての詳細は、Multiple User Environmentsを参照してください。

アプリケーションメニューでは、まず、あなたのアプリケーションの環境設定ダイアログへのアクセスを提供するコマンドを【複数あれば】すべて配置し、それ以降にアプリケーション固有の項目を続けてください。「(アプリケーション名)について」コマンドと「環境設定」コマンドの間には分割線を置いてください。

もし、あなたのアプリケーションが文書固有の環境設定を提供するのであれば、それらはファイルメニュー(「ファイルメニュー」(163ページ)参照)で利用できるようにしてください。文書固有の環境設定のほとんどは、「環境設定」よりも「ページ設定」のような、固有の名前を持つ必要があるでしょう。

(必須)サービス。サービスサブメニューは、あるアプリケーションに、その機能を他のアプリケーションに提供する手段を与えます。

サービスの詳細は、Mac OS X Technology Overviewを参照してください。

(必須)(アプリケーション名)を隠す(Command-H)。現在実行中のアプリケーションのすべてのウインドウを隠して、その直前に使用していたアプリケーションを前面に持ってきます。もし必要であれば、短縮アプリケーション名を使用してください(「アプリケーションメニューのタイトル」(162ページ)を参照)。

(必須)ほかを隠す(Command-Option-H)。現在実行している、ほかのアプリケーションをすべて隠します。

(必須)すべてを表示。現在実行している、すべてのアプリケーションの、すべてのウインドウを表示します。

(必須)(アプリケーション名)を終了(Command-Q)。この、アプリケーションメニューにおける最後の項目は、分割線に先導される必要があります。

ユーザが「終了」を選択し、保存されていない文書があったときは、必要な警告表示を行ってください(「保存する、閉じる、終了するためのダイアログ」(219ページ)を参照)。

必要であれば、短縮アプリケーション名を使用してください(「アプリケーションメニューのタイトル」(162ページ)を参照)。

あなたは、その他のアプリケーション固有のメニュー項目を、「環境設定」と「サービス」メニュー項目の間に含めることができます。けれども、「ヘルプ」メニュー項目を含めてはいけません。これはヘルプメニューに属しているからです(「ヘルプメニュー」(172ページ)を参照)。

ファイルメニュー

一般的に、ファイルメニューの各コマンドは、単一のファイル(最も一般的には、一つのユーザ作成文書)に適用されるべきです。

アプリケーション全体に適用される、「環境設定」や「終了」コマンドは、アプリケーションメニューにあることに注意してください。

もし、あなたのアプリケーションが、文書固有の環境設定を提供するのであれば、これらはファイルメニューから、なるべく「プリント」コマンドのすぐ上で利用できるようにしてください。

もし、アプリケーションが文書単位でなければ、あなたはファイルメニューをより適切な名前に変更したり、取り除いてもかまいません。

ファイルメニューのいくつかの項目—たとえば、「別名で保存」、「プリント」、「ページ設定」—は、シートを開く必要があります。詳細は、「書類単位のモード式ダイアログ(シート)」(208ページ)を参照してください。

図 12-16 ファイルメニュー

標準的なファイルメニューコマンドには、これらが含まれます…

(必須)新規(Command-N)。「名称未設定」(または、「名称未設定 2」など、適宜)と名付けられた、新規の文書を開きます。

もし、あなたのアプリケーションが、作成時に名前の付いた文書を必要とするのであれば、あなたは保存ダイアログを表示することができます(「保存する、閉じる、終了するためのダイアログ」(219ページ)を参照)。

新規の文書ウインドウに名前をつける際の詳細については、「ウインドウを開く」(190ページ)を参照してください。

(必須)開く…(Command-O)。開こうとする、既存の文書を選択するためのダイアログを表示します。

Finderでは、「開く」コマンドに省略文字が続かないことに注意してください。なぜなら、ユーザは【フォルダやボリュームの】移動と、文書の選択を、「開く」コマンドを選ぶ前に行っているからです。

詳細は、「開くダイアログ」(217ページ)を参照してください。

最近使った項目を開く。人々が、開くダイアログを使わなくても、最近開いた文書を開くことができるように、「開く」コマンドの後に「最近使った項目を開く」コマンドを続けることができます。

「最近使った項目を開く」サブメニューは、文書を開かれた順に、最近の項目を上にして表示します。この任意のコマンドは、事務生産、その他の、文書単位のアプリケーションで最も有効です。

最近の文書とアプリケーションを開くための機能は、アップルメニューの「最近の項目」メニュー項目で提供される点に気をつけてください。

もし、あなたが、「最近使った項目を開く」コマンドを搭載する選択をしたら、必ず文書名だけを表示するようにしてください。ファイルパスを表示してはいけません。ユーザには、どの文書がどれなのかを覚えておくための、それぞれのやり方があり【(デスクトップでのアイコンの位置とか、ウインドウの位置とか、ラベルの色とか…)】、特にユーザが要求した場合を除き、ファイルパスを表示することは不適切です。

Carbon:あなたはこのサブメニューに、文書が開かれたり、保存されたときに、その文書を追加する必要があります。

Cocoa:「最近使った項目を開く」サブメニューは、自動的に内容が加えられます。

(必須)閉じる(Command-W)活性ウインドウを閉じます。ユーザがこのコマンドを選択して、なおかつ活性ウインドウに前回の保存以降に変更があったときは、「変更を保存」警告表示を行ってください( 「保存する、閉じる、終了するためのダイアログ」(219ページ)を参照)。

ユーザがOptionキーを押したときは、「閉じる」は「すべて閉じる」に変化します。キーボードショートカットCommand-WとCommand-Option-Wは、それぞれ「閉じる」と「すべて閉じる」コマンドを実行します。

「閉じる」コマンドとCommand-Wは、ユーティリティウインドウを閉じるべきではありません。

ファイルを閉じる(Command-Shift-W)。同一ファイルの複数表示に対応した、ファイル単位のアプリケーションにおいて、あなたは「ウインドウを閉じる」の下に、ファイルとその関連ウインドウのすべてをまとめて閉じるための、「ファイルを閉じる」コマンドを含めることができます。できれば、メニューにファイル名を含めるようにしてください(たとえば、「ファイル"Jerry's Kids"を閉じる」というように)。

(必須)保存(Command-S)。文書を開いたまま、活性文書を保存して、文書が保存中(保存された)ことを示す反応を提供します。

もし、文書がそれ以前に保存されたことが無かったら、「保存」コマンドを淡色表示して、代わりに、確実に「別名で保存」コマンドを活性にしてください。

もし、開いている文書が既に保存されており、ユーザが変更を加えていなければ、「保存」コマンドは淡色表示されます。

(必須)別名で保存…(Command-Shift-S)。活性文書のコピーを、新しいユーザ定義の名前か、新しい場所か、その両方で、ユーザに保存できるようにする、保存ダイアログ(「保存ダイアログ」(219ページ)で説明されています)を表示します。

新たに保存された文書は、開かれたまま、活性のまま、(ユーザが変更していたら)新しい名前で表示されます。以前に保存されたバージョンの文書は、その名前、場所、ファイル形式を保ち、閉じられたままとなります。

もし、文書がそれまでに保存されていなければ、「保存」コマンドは淡色表示され、「別名で保存」コマンドが活性となります。

文書をさまざまなファイル形式で保存するために、複数の「(ファイル形式)で保存」メニューコマンドを提供することは避けてください。

代わりに、保存ダイアログ内で「フォーマット」ポップアップメニューを使用して、ユーザにファイル形式の選択肢を提供しましょう。たとえば、Safariの保存ダイアログにある「フォーマット」ポップアップメニューは、ユーザに、ウインドウの現在の内容をWebアーカイブ形式か、ページソース形式で保存できるようにします。

もし、あなたのアプリケーションは、ユーザに活性文書上で作業を継続できるようにする必要があるけれど、文書のコピーをあなたのアプリケーションが扱えないファイル形式で保存するという場合は、あなたは「別名で書き出し」コマンドを提供することができます。

注:「コピーを保存する」や、「…へ保存」といったコマンドは避けてください。ユーザがこれらのコマンドから連想する機能は、「別名で保存」と「別名で書き出し」コマンドで提供されます。

別名で書き出し…。ユーザが活性文書のコピーを、あなたのアプリケーションが扱うことができない形式で保存できるようにするための、保存ダイアログ(「保存ダイアログ」(219ページ)で説明されています)を表示します。

「別名で保存」コマンドと同じく、ユーザは新しいユーザ定義の名前、場所、その両方を選ぶ選択肢が与えられます。

けれども、「別名で保存」コマンドとは異なり、ユーザが現在のファイル形式で作業を継続できるように、元の文書は開かれたままである必要があります。新たに保存された文書は、自動的には開かれるべきではありません。

このコマンドは、もし、あなたのアプリケーションが、ユーザにある形式の文書で作業を行わせて、その文書のコピーをあなたのアプリケーションが扱えない形式で保存できるようにする必要がある場合に、提供してください。

保存ダイアログ内の、文書名の文字列入力欄のラベルは、必ず「別名で保存:」から「別名で書き出し:」に変更してください。

すべて保存。開いているすべての文書への変更を保存します。

最後に保存した状態に戻す。活性文書が最後に保存されてから、または開かれてから、加えられたすべての変更を破棄します。

ユーザが「最後に保存した状態に戻す」を選択したときは、操作によって起こるデータ消失の可能性について、ユーザに警告を行う、警告表示を行ってください。

(必須)プリント…(Command-P)。ユーザに、プリンタで印刷できるようにする、ファクスに送信できるようにする、PDFファイルに保存できるようにする、標準プリントダイアログを開きます。

詳細は、「プリントダイアログ」(226ページ)を参照してください。

(必須)ページ設定…(Command-Shift-P)。用紙の大きさ、印刷方向といった印刷パラメータを明示するためのダイアログを開きます。これらのパラメータは、文書と共に保存されます。

【表示順に挙げられているとのことだが、テキストエディットでは「ページ設定」「プリント」の順に並んでいる…】

編集メニュー

編集メニューは、人々が文書の内容や、入力欄といった、その他の文字列の容れものを、変更(編集)できるようにするコマンドを提供します。また、アプリケーション内や、アプリケーション間で、クリップボードを通してデータを共有できるようにするコマンドも提供します。

クリップボードは、文書からカット、またはコピーされたデータを、ユーザが新しいデータをカットまたはコピーして内容を置き換えるまで、何であろうと記録します。

クリップボードはすべてのアプリケーションに対して利用でき、その内容はユーザがアプリケーションを切り替えても変化することはありません。

クリップボードは、アプリケーション間で異なる種類のデータを交換するための、すばらしい支援を提供します。

あなたのアプリケーションは、文字列をクリップボードへコピーしたときに、書式を保つ必要があります。

図 12-17 編集メニュー

あなたのアプリケーションの編集メニューは、以下のコマンドを提供する必要があります。あなたのアプリケーションが、その文書の中で文字列編集を扱わないとしても、これらのコマンドはダイアログや、ユーザが文字列編集を行うことのできる、あらゆるところで利用可能であるべきです。

(必須)取り消し(Command-Z)。「取り消し」コマンドは、ユーザの直前の操作の効果を逆行させます。

これらに対して「取り消し」コマンドに対応してください…

  • 文書の内容を変更するような操作
  • 作り直すために多大な労力を要する操作
  • メニュー項目のほとんど
  • キーボード入力のほとんど

取り消しできないであろう操作には、これらが含まれます…

  • 選択
  • スクロール
  • ウインドウの分割
  • ウインドウの大きさや位置の変更

「取り消し」コマンドには、最後の操作の名前を加えてください。もし、最後の操作がメニューコマンドであれば、コマンド名を加えます。たとえば、もし、ユーザが単に文字列を入力したら、コマンドは「入力の取り消し」となります。もし、ユーザが「ペースト」コマンドを選択したのであれば、「取り消し」コマンドは、「ペーストの取り消し」となります。

もし、最後の操作が逆行できないのであれば、コマンドを「取り消しできません」に変更して、現在の状態についての反応を提供するために、これを淡色表示してください。

もし、ユーザがデータに有害な影響を及ぼし、元に戻せない操作を行おうと試みた場合は、ユーザに警告してください。「警告表示」(210ページ)を参照してください。

(必須)やり直し(Command-Shift-Z)。「やり直し」コマンドは、最後に行った「取り消し」コマンドの効果を逆行させます。「取り消し」コマンドに、最後に元に戻した操作の名前を加えてください。

(必須)カット(Command-X)。選択されたデータを取り除き、それをクリップボードに記録して、以前のクリップボードの内容を置き換えます。

(必須)コピー(Command-C)。選択されたデータの、クリップボードに記録される複製を作成します。

(必須)ペースト(Command-V)。クリップボードの内容を、挿入ポイントに挿入します。クリップボードの内容は変更されずに維持され、ユーザが複数回「ペースト」を選択することを許可します。

ペーストしてスタイルを合わせる(Command-Option-Shift-V)。文字列編集アプリケーションにおいて、挿入ポイントにクリップボードの内容を挿入し、挿入された文字列のスタイルを、周囲の文字列に合わせます。

もし、あなたのアプリケーションがいくつかの文字列書式コマンドを提供するのであれば、あなたはこれらを編集メニューに並べるのではなく、フォーマットメニューの中でグループ化することを選択してもかまいません(「フォーマットメニュー」(168ページ)を参照)。

(必須)削除。選択されたデータを、クリップボードに選択範囲を記録せずに取り除きます。「削除」の選択は、DeleteキーやClearキーを押すことの同義操作です。メニューコマンドとしては、「クリア」よりも「削除」を使用するようにしてください。

(必須)すべてを選択(Command-A)。文書、またはウインドウ内のすべてのオブジェクト、もしくは文字列入力欄のすべての文字を、強調表示します。

(必須)検索…(Command-F)。項目を検索するためのインタフェースを開きます。このコマンドは、検索の対象がファイルであれば、代わりにファイルメニューにあっても構いません。たとえば、アプリケーションがインターネットでファイルを検索するような場合です。

適切なときは、あなたのアプリケーションは「検索/置き換え」コマンドも含む必要があります。

「検索ウインドウ」(216ページ)は、文字列検索のための、典型的な検索ウインドウの例を示しています。

もし、あなたのアプリケーションが複数の検索関連のコマンドを提供するのであれば、あなたは「検索」サブメニューを含める必要性を感じることでしょう。

「検索」サブメニューには一般的に、「検索」(Command-F)、「次を検索」(Command-G)、「前を検索」(Command-Shift-G)、「選択部分を検索」(Command-E)、そして「選択部分へジャンプ」(Command-J)が含まれます。

もしあなたが「検索」サブメニューを搭載するのであれば、【サブメニュータイトルの】「検索」コマンドに省略文字は続きません。

次を検索(Command-G)。最後の検索操作を再び行います。この項目は、ファイルメニュー、編集メニューのどちらであっても、「検索」コマンドとグループ化される必要があります。

スペル…(Command-:)。文字列編集に対応したアプリケーションにおいて、選択された文字列のスペルチェックを行い、ユーザが綴りを修正したり、綴りの候補を見たり、他の綴りの誤った単語を検索できるインタフェースを開きます。

もし、あなたのアプリケーションが複数のスペル関連コマンドを提供するのであれば、あなたは「スペル」サブメニューを含める必要性を感じることでしょう。

「スペル」サブメニューは一般的に、「スペルチェック」(Command-;)と、「入力時に自動スペルチェックをする」コマンドが含まれます。

もし、あなたが「スペル」サブメニューを搭載するのであれば、【サブメニュータイトルの】「スペル」コマンドには省略文字が続きません。

スピーチ。「読み上げを開始」と、「読み上げを停止」コマンドを含むサブメニューを表示します。

もし、あなたのアプリケーションが文字列を表示するのであれば、ユーザがシステムによって音読される文字列を聞くことができるように、「スピーチ」メニュー項目を提供することができます。

(必須)特殊文字…。ユーザが文字列入力欄に、Mac OS Xで対応しているあらゆる文字セットから文字を入力できるようにする、特殊文字ウインドウを表示します。

このメニュー項目は編集メニューの末尾に、自動的に挿入されます。

フォーマットメニュー

もし、あなたのアプリケーションが、文字列の書式のための機能を提供するのであれば、あなたはフォーマットメニューを、最上位のメニューか、編集メニューのサブメニューとして搭載することができます。

フォーマットメニューの中の項目は、フォント、文字列、スタイルのように、サブメニューにグループ化するのが適切でしょう。

図 12-18 フォーマットメニュー

(必須)フォントパネルを表示(Command-T)。フォーマットメニューの最初の項目は、フォントウインドウ【(フォントパネル)】を表示する、「フォントパネルを表示」とすべきです。

Carbon:FPShowHideFontPanel関数を使用してください。Text & International Documentationのthe Fonts Window Services Referenceを参照してください。

Cocoa:NSFontPanelを使用してください。

(必須)カラーパネルを表示(Command-Shift-C)。色選択ウインドウ【(カラーパネル)】を表示します。

Carbon:色選択ウインドウを実装するためにNPickColor関数を使用してください。Carbon Graphics & Imaging DocumentationのColor Picker Manager Referenceを参照してください。

Cocoa:NSColorPanelクラスを使用してください。Cocoa Graphics & Imaging DocumentationのColor Programming Topics for Cocoaを参照してください。

ボールド(Command-B)。選択された文字列に太字体を適用するか、文字列の太字体をオンとオフとで切り替えます。切り替え式で用いる場合は、メニュー内のコマンドの隣にチェックマークを付けて、オンである時を示してください。

イタリック(Command-I)。選択された文字列に斜体を適用するか、文字列の斜体をオンとオフとで切り替えます。切り替え式で用いる場合は、メニュー内のコマンドの隣にチェックマークを付けて、オンである時を示してください。

アンダーライン(Command-U)。選択された文字列に下線を適用するか、文字列の下線をオンとオフとで切り替えます。切り替え式で用いる場合は、メニュー内のコマンドの隣にチェックマークを付けて、オンである時を示してください。

大きく(Command-Shift-イコール)。選択された項目の大きさを、定義された増幅で増加させます。

【上記ショートカットは英語配列キーボードの場合。 JIS配列キーボードでは"Command-Shift-;"、要するに"Command-+"である。】

小さく(Command-ハイフン)。選択された項目の大きさを、定義された増幅で減少させます。

スタイルをコピー(Command-Option-C)。選択された項目のスタイル—文字列のフォント、色、大きさ—をコピーします。

関連項目に加えて、この項目を「スタイル」サブメニューの中に配置しても適切でしょう。

スタイルをペースト(Command-Option-V)。あるオブジェクトのスタイルを、選択されたオブジェクトへ適用します。

左揃え(Command-{)。選択範囲を左揃えにします。

中央揃え(Command-|)。選択範囲を中央揃えにします。

両端揃え。 選択範囲の空白を均等にします。

右揃え(Command-})。 選択範囲を右揃えにします。

ルーラを表示。書式用の定規を表示します。

ルーラのコピー(Command-Control-C)。 選択範囲のタブや行揃えといった書式設定を、ほかの選択範囲へ適用するためにコピーし、クリップボードに記録します。

ルーラのペースト(Command-Control-V)。(クリップボードに保存されている)書式設定を、選択されたオブジェクトへ適用します。

表示メニュー

表示メニューは、ユーザがウインドウの内容をどのように見るか、という点に影響を及ぼすコマンドを提供します。

表示するために特定の文書ウインドウを選択したり、特定の文書ウインドウを管理するためのコマンドは提供しません。ウインドウをまとめ、選択し、管理するコマンドは、ウインドウメニュー(「ウインドウメニュー」(171ページ)で説明しています)の中に配置します。

たとえば、Finderの表示メニューは、ウインドウをカラム、アイコン、リスト形式で表示するためのコマンドを含みます。

ツールバーを表示する、隠す、カスタマイズするためのコマンドは、表示メニューに属しています。あなたのアプリケーションが、ほかに表示メニューのコマンドを必要としなくても、これらのコマンドのために表示メニューを作成してください。「ツールバーを表示/隠す」は、「ツールバーをカスタマイズする」のすぐ上に現れる必要があります。

(ツールパレットといった)ユーティリティウインドウを表示するために表示メニューを使用することは避けてください。代わりにウインドウメニューを使用しましょう。

図 12-19 表示メニュー

(必須)ツールバーを表示/隠す(Command-Option-T)。ツールバーを表示、または隠します。

「ツールバーを表示/隠す」コマンドは、人々がフルキーボードアクセスを用いて、これらの機能をキーボードから行うことができるように、提供されています。

これは現在の表示状態を元にして切り替える、動的メニュー項目とする必要があります。もし、現在ツールバーが見えていれば、メニュー項目は「ツールバーを隠す」となります。もし、ツールバーが見えていなければ、「ツールバーを表示」となります。

(必須)ツールバーをカスタマイズ…。表示する項目を、ユーザにカスタマイズできるようにするウインドウを開きます。

図 12-20は、Finderでこのコマンドを選択した結果を示しています。

図 12-20 Finderのツールバーカスタマイズウインドウ

アプリケーション固有のメニュー

あなたは、独自のアプリケーション固有のメニューを、適宜追加することができます。これらのメニューは、図 12-21に図示する通り、表示メニューとウインドウメニューの間とする必要があります。

図 12-21 Safariにおけるアプリケーション固有のメニュー

アプリケーション固有のメニュー

メニューバーにおけるアプリケーション固有のメニューをどのように整理するかについての詳細は、「メニューバーとそのメニュー」(159ページ)

ウインドウメニュー

ウインドウメニューは、あるアプリケーションのウインドウを、まとめて、管理するためのコマンドを含みます。

このメニューは、あるアプリケーションが開いている文書ウインドウ(しまわれたウインドウを含めて)を、開かれた順に、最近開かれた文書を最初にして、一覧表示する必要があります。

もし、文書が、保存されていない変更を含んでいたら、その名前の隣に黒丸が現れる必要があります。

「しまう」と「拡大/縮小」(後述)を除いて、ウインドウメニューは、ユーザのウインドウの内容の見え方に影響するコマンドを含みません。

表示メニュー(「表示メニュー」(169ページ)で説明しています)は、ウインドウの内容が、どのようにユーザに見えるかを調節する、すべてのコマンドを含みます。

図 12-22 ウインドウメニュー

Mac OS Xは、ウインドウメニューの一覧にユーティリティウインドウを自動的に追加するので、あなたは個々のユーティリティウインドウをこのメニューに一覧表示する必要はありません。けれども、あなたは、あなたのアプリケーションのユーティリティウインドウを表示、または隠すためのコマンドを、ウインドウメニューに追加することができます(ユーティリティウインドウについての詳細は、「ユーティリティウインドウ」(202ページ)を参照)。

ウインドウメニューの「しまう」と「拡大/縮小」コマンドは、人々がフルキーボードアクセスを用いて、これらの機能をキーボードから行うことができるように存在しています。もし、あなたのアプリケーションが一つのウインドウだけで構成されていたとしても、ウインドウメニューに「しまう」と「拡大/縮小」コマンドを搭載してください。

ウインドウメニューの項目は、この順に現れる必要があります…

「しまう」、「拡大/縮小」、分割線、アプリケーション固有のウインドウコマンド、分割線、「すべてを手前に移動」(任意)、分割線、開いている文書の一覧

「閉じる」コマンドは、ファイルメニューの、「開く」コマンドの下に現れるべきであるという点に注意してください(「ファイルメニュー」(163ページ)を参照)。

Carbon:ウインドウメニューは、あなたがInterface BuilderでCarbonアプリケーションを作成したときは、デフォルトのメニューバーの一部です。これをプログラム的に作成するには、CreateStandardWindowMenu関数を使用してください。

Cocoa:ウインドウメニューは、あなたがInterface BuilderでCocoaアプリケーションを作成したときは、デフォルトのメニューバーの一部です。

(必須)しまう(Command-M)。活性ウインドウをDockへしまいます。

すべてしまう(Command-Option-M)。活性アプリケーションのすべてのウインドウをDockへしまいます。

(必須)拡大/縮小。ウインドウの内容に対して適切な、規定された大きさと、ユーザが設定したウインドウの大きさとの間で切り替えます。このコマンドはウインドウを画面全体の大きさに広げるべきではありません。

「ウインドウをサイズ変更する、拡大縮小する」(195ページ)を参照してください。

すべてを手前に移動。あるアプリケーションが開いているすべてのウインドウを、画面上の位置、大きさ、重なり順を維持したまま、手前に移動します。

この動作は、ユーザがDock内のアプリケーションアイコンをクリックしたときは常に発生する必要があります。「ウインドウの重ね合わせ」(196ページ)を参照してください。

あなたは、このコマンドをOption切り替えで「ウインドウを整理」にすることができます。

ウインドウを整理。アプリケーションのすべてのウインドウを、現在の重なり順で手前に移動して、きれいに並ぶように位置と大きさを変更します。

ヘルプメニュー

もし、あなたのアプリケーションが画面上でヘルプを提供するのであれば、ヘルプメニューを、あなたのアプリケーションの右端のメニューとする必要があります。

最初の項目は、アプリケーション名と「ヘルプ」の単語とします(たとえば、「Mail ヘルプ」)。この項目は、ヘルプビューアの、あなたのヘルプ内容の最初のページを開く必要があります。

ヘルプメニューには項目が一つだけであるのが最善ですが、さらに項目がある場合は、「(アプリケーション名)ヘルプ」項目の下に現れるべきです。

チュートリアル、ウェブサイトへのリンク、登録情報、リリースノート、サポート情報といった、あなたのヘルプ内容とは性質の異なる、補足的な項目は、あなたのヘルプメニュー内の個別の項目とする代わりに、あなたのヘルプブックの内部へリンクを張るべきです。

同じところ—あなたのヘルプブック—へと導く、複数の項目をヘルプメニューに追加することは避けてください。ヘルプビューアを開く複数の入り口があると、混乱することがあります。あなたのヘルプブックのセクション間の違いは、あなたが考えているほどユーザにとっては明確ではないでしょう。

ヘルプブックのセクション間の移動は、一般的には、ヘルプビューアのウインドウにおいて、リンクを提供することで処理するのが最適です。

図 12-23 ヘルプメニュー

(必須)(アプリケーション名)ヘルプ(Command-?)。あなたのアプリケーションのヘルプを表示するために、ヘルプビューアを開きます。

ヘルプ内容の作成についての詳細は、User Experience Help Technologies Documentationの、Providing User Assistance With Apple Help (Revision; Preliminary)を参照してください。

メニューバーエクストラ

【(Macヘルプではステータスメニューと呼ばれている)】

アップルによる使用のために予約されている、メニューバーの右側は、特定のハードウェアやネットワーク設定からの反応や、これらへのアクセスを提供する項目を含んでいることがあります。

メニューバーエクストラは、メニューバーに数種類の状態を表示し、設定を変更するためのメニューを持ちます。たとえば、バッテリ電力表示は、ポータブルコンピュータ用のバッテリの、現在の状態を動的に表示し、そのメニューには一般的なバッテリ設定があります。

ユーザはメニューバーエクストラを、適切な環境設定ペインで表示、または隠すことができます。

重要:あなた独自のメニューバーエクストラを作成してはいけません。Dock内のあなたのアプリケーションアイコンからメニューを開くための、Dockメニューの機能を用いてください。

もし、メニューバーに、すべてのメニューを表示するための十分な空間が無ければ、アプリケーションメニューのための空間を優先して確保するために、メニューバーエクストラはMac OS Xによって自動的に取り除かれます。

この理由に加えて、ユーザはメニューバーエクストラを隠すことを選択できるため、あなたはメニューバーエクストラの存在に依存すべきではありません。

コンテキストメニュー

コンテキストメニュー【文脈メニュー】は、ある項目に関連づけられた、頻繁に使用するコマンドへの便利なアクセスを提供します。あなたはコンテキストメニューを、現在の作業の文脈において意味のあるコマンドへの近道として考えることができます。

コンテキストメニューは、ユーザが適切なインタフェース要素や、選択範囲をクリックしているときに、Controlキーを押したときに開きます。代わりに、ユーザは、単ボタンマウスでControl-クリックするのと同様にふるまうように、多ボタンマウスのボタンの一つを、副ボタンとして設定することができます。

コンテキストメニューは、ポインタをコンテキストメニューの外へ移動し、標準のプルダウンメニューの上においても、次のメニューを活性化しないという点を除けば、標準のプルダウンメニューのようにふるまいます。

ユーザは、コンテキストメニューを閉じるためにクリックする必要があり、次の【標準のメニューバーの】メニューを開くためには再びクリックするか、プレスを行う必要があります。

全体を表示するには長すぎるコンテキストメニューは、スクロール表示(下向きの三角形)を用いて、標準のメニューのようにスクロールしてください。

コンテキストメニューにおけるサブメニューは、注意深く使用して、1階層に留めてください。

デフォルト項目を定めてはいけません。もし、ユーザがメニューを開き、何も選択せずに閉じた場合は、いかなる動作も起こるべきではありません。

あなたのアプリケーションのコンテキストメニューにおける項目は、あなたが定義します。適切な文脈において、最も一般的に使用されるコマンドの、小さな部分集合を含めてください。たとえば、強調表示された文字列に対するコンテキストメニューには、編集メニューのコマンドが現れる必要がありますが、「保存」や「プリント」コマンドは現れるべきではありません。

常にコンテキストメニュー項目は、メニューコマンドとしても利用できることを保証してください。コンテキストメニューは初期状態では隠れており、ユーザはその存在を知らないかもしれないので、コンテキストメニューを、あるコマンドへの唯一の利用手段とすべきではありません。特に、高度な、もしくはパワーユーザ向けの機能への唯一のアクセス方法として、コンテキストメニューを使用すべきではありません。

もし、コマンドにキーボードショートカットがあっても、コンテキストメニューにショートカットを表示してはいけません(あなたは、「メニューバーとそのメニュー」で説明されている通り、ショートカットはメニューバーのメニューに表示する必要があります)。

ユーザはコンテキストメニューを、作業に固有のコマンドへの、近道【ショートカット】のセットとして使用するため、これらのコマンドに対してキーボードショートカットを表示するのは冗長です。

図 12-24 Finderのアイコンに対するコンテキストメニューと、文書における文字列選択範囲に対するコンテキストメニュー

Carbon:Carbon User Experience Documentation内の、Menu Manager Referenceを参照。

Cocoa:Cocoa User Experience Documentation内の、Application Menus and Pop-up Listsを参照。

Dockメニュー

ユーザが、Dock内のあなたのアプリケーションのタイル表示の上で、マウスボタンを押し続けたとき、メニューが現れます。

このメニューは、アプリケーションの開いているウインドウと、「Finderに表示」、「隠す」、「終了」コマンドの一覧を表示します。「Finderに表示」コマンドは、あなたのアプリケーションを含むフォルダを、Finderウインドウに表示します。「隠す」と「終了」コマンドは、「アプリケーションメニュー」(162ページ)で記載した通りの機能です。

もし、ユーザがOptionキーを押すと、「隠す」は「ほかを隠す」に変化し、「終了」は「強制終了」に変化します。

もし、アプリケーションのタイル表示がDockに永続的に加えられていなければ、「Dockに保存」コマンドも現れます。

図 12-25 iTunesのDockメニュー

あなたは、Dockが提供するデフォルトの項目に追加することで、あなたのアプリケーションのDockメニューをカスタマイズすることができます。これらの追加項目は、アプリケーションが開かれているときのみDockメニューに現れます。

追加される可能性のある項目としては以下が含まれます…

  • あなたのアプリケーションが最善面にいないときに動作を開始する一般的なコマンド
  • 開いている文書ウインドウがないときに適用できるコマンド
  • 状態と情報を示す文字列

たとえば、メール用アプリケーションは、新規メッセージを開始する、新着メッセージを確認する、といったコマンドを提供することができます。

あなたがDockメニューに加えるコマンドは、いずれも、あなたのアプリケーションのプルダウンメニューからも利用できる必要があります。

アプリケーション固有の項目は、標準のDockメニュー項目の上に現れます。

Carbon:Carbon User Experience Documentationの、Customizing Your Application Dock Tileを参照。

Cocoa:Dockメニューをカスタマイズするための情報は、NSApplicationのリファレンスを参照してください。


←第11章:カーソル
→第13章:ウインドウ