2008年4月23日水曜日

Leopard の日本語 Help メニュー

Leopard からは、Spotlight メニューのようにヘルプメニューに直接文字列を入力して検索できるようになりました。

プログラムの開発側からは、メニューバーに Help というタイトルを作れば自動的にシステムで検索メニューを付加してくれます。日本語の場合は「ヘルプ」というメニューがあるばそこに検索メニューが付加されます。

ところが拙作のソフトで、英語モードでは問題ないが、日本語モードのときにどうしても検索メニューが表示されないという症状にぶつかってしまいました。

約半日の試行錯誤の結果、以下のことが判明しました。

・メインメニューの「ヘルプ」の後になにか(例えばプラグインなど)のメニューを追加すると検索メニューが消えてしまう。
・この現象は、日本語モードときにおき、英語モードのときは発生しない。

というわけで、Leopardではへプルメニューの後にメニューを追加してはいけません

また、Leopardでは、メニューアイテムに任意のNSViewをセットすることができるようになりましたが、残念ながらNSTextFieldやNSTextViewなどのキーボードイベントが必要なViewは動作しません。

ところが、Helpメニューのなかでは、キーボードイベントを受けてとることができ、NSTextFieldやNSTextView などのメニューアイテムも正しく動作します。