Dockに独自メニューを追加する

MinimumMenu の version 0.3 では、Preferences パネルでアプリケーションのメニューを全部消すことができるようになった。じゃあ、メニューがなかったら Preferences パネルはどうやって表示したらよいのでしょう。それには、Dock に表示されている MinimumMenu のアイコンをクリックすればよい。でも、これには最初気がつかずに Dock のアイコンを Ctrl+クリックして Dock のメニューを表示させて終了させて、plist ファイルを削除するという手段をとってしまった。

どうせなら Dock のメニューからも Preferences パネルを表示させられるようにしてはどうだろう。というわけで調べてみた。

Dock メニューを追加するには二つ方法がある。静的なメニューと動的なメニューである。静的なメニューというのは、iTunes でいうと「一時停止」とか「次へ」とかのアプリケーションを実行している間に変更しない項目のメニューを指す。一方動的なメニューとは、iTunes だと「再生中」メニュー項目の下の再生中の曲名のようなメニュー項目だ。

静的なメニューを追加する

MinimumMenu の Dock メニューを追加する手順を以下に示します。

  1. MainMenu.nib を開きます。
  2. Object Library から Menu をドラッグアンドドロップして追加します。
  3. お好みで DockMenu などの名前を付けます。
  4. 追加したメニューを File's Owner インスタンスの dockMenu アウトレットに接続します。
  5. 追加した DockMenu メニューに Preferences... 項目を追加します。
  6. 標準でできている item 1, item 2, item 3 項目を削除します。
  7. Preferences パネルの makeKeyAndOrderFront アクションに、追加した Preferences... メニュー項目を接続します。

これだけで静的メニューを追加できました。

動的なメニューを追加する

動的 Dock メニューを実現するには、アプリケーションのデリゲート先で applicationDockMenu: メソッドを実装します。このメソッドから、動的に生成したメニューオブジェクトを返すようにします。

以上の情報は Cocoa Dev Central の How to Make a Dock Menu を参考にしました。