29
自己修正メニュー項目のショートカットを作成する

多くのプログラムでは、メニューを使って特定の機能を有効または無効にすることができます。例えば、Mailには「表示」→「スレッドで整理」オプションがあります。このようなメニュー項目の切り替え状態を示す方法はいくつかあります。Mailの「スレッドで整理」オプションを例に挙げると、この表示モードを有効にすると、Mailは「スレッドで整理」の前にチェックマークを追加します。

しかし、最近のトレンドとして、選択した機能を有効にするとメニュー項目の名前が実際に変わるというものがあります。例えばFinderでは、「表示」メニューに「パスバーを表示」と(選択した表示方法によって異なりますが)「ステータスバーを表示」があります。どちらかを選択すると、メニュー自体が「パスバーを隠す」または「ステータスバーを隠す」に切り替わります。チェックマークを使う方法に比べて、この方法の利点は、そのメニュー項目を選択すると何が起こるかが明確にわかることです。明らかな欠点(そして私自身も遭遇した点)は、これらのメニュー項目にキーボードショートカットを割り当てようとすることです。

私の場合、iChat のスマイリーをすぐに無効にする方法が必要でした。これには、「表示」->「メッセージ」->「スマイリーを非表示」メニュー オプションを使用します (コード スニペットを受け取ったときに、一般的なコードの組み合わせ ( など=$) が何らかのスマイリー ( の「お金の口」スマイリー=$) に変わる例がかなりあるため、スマイリーを無効にする必要があります)。Control-S (または任意のキー) を「スマイリーを非表示」に割り当てるのは簡単です。「キーボードとマウス」システム環境設定パネルの「キーボード」タブに移動するだけです。プラス記号をクリックし、アプリケーション ポップアップを iChat に設定して、メニュー タイトルに「スマイリーを非表示」と入力し、「キーボード ショートカット」ボックスに希望のキーストロークを入力してから、「追加」をクリックします。

しかし、これでは問題の半分しか解決しません。2つの異なるメニュー項目(この例では「スマイリーを表示」)に同じキーボードショートカットを割り当てるにはどうすればいいのでしょうか? 実はMac OSはこの点で非常に賢い(あるいは愚か?)ようで、複数のメニュー項目に同じキーボードショートカットを割り当てても問題ないのです! 最初のショートカットを追加した後、もう一度「追加」をクリックして同じ手順を繰り返しますが、メニュータイトルを「スマイリーを表示」に変更します。同じControl-Sショートカットを割り当てて「追加」をクリックすると、次のような画面が表示されます。

画像

ご覧の通り、Control + SはiChatの両方のメニュー項目に割り当てられています。実際には、これは期待通りに動作し、Control + Sで機能のオン/オフを切り替えます。ショートカットはメニューにも正しく表示されます。OS Xには、このようなトグルボタンが多数あります。この記事について簡単に検索したところ、以下の例が見つかりました。

  • Finder: 表示メニュー、パスバーの表示/非表示、ステータスバーの表示/非表示
  • メール: 表示メニュー、選択したメッセージのみを表示/すべてのメッセージを表示、ツールバーの表示/非表示
  • テキストエディット: フォーマットメニュー、編集の許可/禁止
  • iCal: カレンダー リスト、ミニ月、通知、検索結果の表示/非表示を含む、表示メニューの多数のエントリ。

他にも似たようなメニューを持つアプリはたくさんあると思います。マウスよりもキーボードを使いたい場合は、このちょっとしたコツを覚えておけば、自動的に変化するメニュー項目にキーボードベースのトグルを割り当てることができます。