표준 전자 메일 응용 프로그램과 마찬가지로 전자 메일 응용 프로그램은 실제 사용 결과를 기반으로 여러 메뉴 항목의 상태 (활성화/비활성화)를 변경해야합니다.Electron의 메뉴 항목 상태를 동적으로 변경하십시오.
내가 main.js 내 메뉴를 설정하고있다 :
function createWindow() {
...
...
require('./menu/mainmenu');
}
MenuItem과 나는 MAINMENU에 정의되어 변경해야
{ label: "Show Colors",
accelerator: 'CmdOrCtrl+1',
enabled: getStatus(),
click() {getWebviewWebContents().send('switchToColors');}
},
getStatus()
이 false
또는 true
을 반환하는 기능입니다.
이 모든 것은 Electron에서 작동하지 않습니다. 메뉴가 응용 프로그램 시작시 만들어지며 전혀 수정할 수 없기 때문입니다. 동적 메뉴 항목이 매우 일반적 (예 : 메뉴 체크 상자, 사용함/사용 안 함 등)이기 때문에 이것이 심각한 결함이라고 생각합니다.
해결 방법이 있습니까?
그게 제가 이미 시도했지만 성공하지 못했습니다. 메뉴가 캐시에 무엇인가를 유지하는 것처럼 보입니다. 그리고 다시 빌드 할 때마다 (false로 설정 한 변수를 true로 변경해도 동일합니다.) –
다시 작성한 후에 매번 메뉴를 명시 적으로 설정 했습니까? (setApplicationMenu) –