2016-06-23 3 views
1

は、私は、メニューを再作成しようとすると、InDesignのは、それを考えているようだから、何も起こりません、私は後で

残念ながら
menu.remove(); 
delete menu; 

を介して除去することを、InDesignのメニューにサブメニューを追加しましたInDesignを再起動するまでメニューが表示されます(ただし、項目は追加されません)。 InDesignを再起動しなくても後で再作成できるように、メニューを永久に削除するにはどうすればよいですか?メニューには、まだ...私は同様に修正したいと思い、(私はメニュー名として「テスト」と「&テスト」を試してみましたので、でも二回、まだより悪い)InDesignのメニューの環境設定に表示

編集この奇妙な動作は、InDesignのスクリプトパネルを介してスクリプトを実行するときにのみ発生しますが、スタートアップやExtendScriptツールキットでは発生しません。ただし、メニュー項目は削除後も残ります。

答えて

1

永続セッションを使用する場合は、何をしているのかを再確認することは有効です。あなたのケースでは、それを追加しようとする前にメニューが存在する可能性をチェックすることを意味します。

#targetengine "mine" 
var mainmenu = app.menus.item("$ID/Main"); 

var menu = mainmenu.submenus.item("Test"); 
!menu.isValid && menu = mainmenu.submenus.add("Test", LocationOptions.before, mainmenu.submenus.item("$ID/#Keyboard_Help")); 

//comment ON/OFF to remove or not the menu 
//menu.remove(); 

2次的な点は、メインメニューバーに追加されたメニューはヘルプメニューの後に配置できないため、場所オプションを設定する必要はないと思います。私が間違っていない限り、InDesignは常にヘルプメニューを右の最後の位置に配置します。

+0

問題)があっても(menu.remove 'の後、です。 '、' mainmenu.submenus.items( "Test")。isValid'はまだ 'true'になり、InDesignを再起動するまで以前に削除されたメニューは表示されません。その後、メニュー項目を新たに追加する必要があります。 –

+0

私は、InDesignがデフォルトでどこにメニューを配置するかを確認するのに気を配ったことはありません。 –

+0

btw、もし私が 'LocationOptions.before'を省略すると、新しいメニューが追加されます_after_" Help " –

1

以前の試みでメニューオブジェクトへの多数の参照を作成し、それが永続的エンジンであり、参照が有効である可能性があります。

InDesignを再起動する必要があります。

添付のスクリプトから作成したスクリーンショットです。 isValidは、スクリプトとメニューの存在の段階によって、trueからfalseに変化します。

The menu has been added and is validThe menu has been removed and is no longer valid

#targetengine "mine" 
var mainmenu = app.menus.item("$ID/Main"); 

var menu = mainmenu.submenus.item("Test"); 
!menu.isValid && menu = mainmenu.submenus.add("Test", LocationOptions.before, mainmenu.submenus.item("$ID/#Keyboard_Help")); 
alert(menu.isValid); 
//comment ON/OFF to remove or not the menu 
menu.remove(); 

alert(menu.isValid); 
+0

あなたは正しいです、' isValid'の変更 - 私は 'delete'を管理しながらグローバルに横たわっているに違いありません。残りの問題は、メニューが再起動しなくても再作成されないということです。スクリプトを再実行すると、それは起こりません。 –

+0

btw [This post](https://forums.adobe.com/message/2183887#2183887)でも、#targetengineはInDesignを再起動しても永続的ではありません。 InDesignsのメニュー自体に何らかの根本的な変更が加えられているようです... –

+0

私はADD | REMOVE | ADD | REMOVEを作成しました。私の側で削除後にメニューを追加できることを確認できます。 #targetengineはInDesignを再起動しても永続的ではありません。もちろん、起動スクリプトフォルダにあなたのスクリプトを使用していませんか?それはあなたの問題を説明するかもしれません。 – Loic

関連する問題

 関連する問題