Tips

複数のメニュー項目で1つのメソッドを共有

日付2010/01/20
ID10-004
バージョン11
プラットフォームWin, Mac

複数のメニュー項目で1つのメソッドを共有したいという要求があるかもしれません。しかもメニューによって振る舞いを変えたいということもあると思います。そのようなときは、Get selected menu item parameterで判別する方法が簡単です。

ランゲージリファレンス:Get selected menu item parameter

Get selected menu item parameterコマンドを使うためには、予めメニューバーエディタで当該メニュー項目の「パラメタ」フィールドに値をセットしておく必要があります。例えばパラメタに「TEST1」をセットしたメニュー項目の場合、メニューから呼び出されたメソッドでGet selected menu item parameterコマンドを実行して「TEST1」を得ることができます。

このように簡単にメニューを判別できますが、メニュープロパティの「新規プロセス開始」オプションを有効にすると、正しい値が得られないので注意が必要です。新規プロセスを開始したい場合には新規プロセス開始オプションを使わず、メソッドを間に入れ、そのメソッドでNew processを行い、New processのパラメータとして本来のメソッドに対して選択されたメニューを伝承するなどの工夫が必要になります。