JFace IAction 및 setAccelerator()
을 사용하는 키보드 단축키에 관한 문제가 있습니다. 내 샘플 코드 :IAction :: setAccelerator 사용이 예상대로 작동하지 않습니다.
menuAction.setAccelerator(SWT.CTRL | 'A');
키보드 바로 가기 CtrlL + A 내 응용 프로그램 내에서 인식되지 않습니다.
JFace IAction 및 setAccelerator()
을 사용하는 키보드 단축키에 관한 문제가 있습니다. 내 샘플 코드 :IAction :: setAccelerator 사용이 예상대로 작동하지 않습니다.
menuAction.setAccelerator(SWT.CTRL | 'A');
키보드 바로 가기 CtrlL + A 내 응용 프로그램 내에서 인식되지 않습니다.
내 지식에 따르면 IAction
의 가속기 속성은 주요 바로 가기를 사용해야하는 정보 만 전달합니다.
키 단축키를 캡처하고 일치하는 동작을 실행하는 실제 구현은 JFace의 일부가 아니거나 적어도 기본적으로 활성화되어 있지 않습니다. 플랫폼/UI의 일부인 일부 비트 및 조각이 워크 벤치에서 작동합니다.
는 여전히 수,이 솔루션으로 이어질하지 않는 경우ActionContributionItem
에서
ExternalActionManager.ICallback::isAcceleratorInUse()
호출 ~ 라인 825
을 따라야 실제로 독립 JFace는 응용 프로그램에서 가속기를 작동하게하는 데 필요한을 확인하려면 키 바로 가기에 대한 각 동작을 호출하는 디스플레이 필터를 추가하십시오 (SWT Actions with Keyboard Shortcuts... without having to add them to the menu 참조).
menuAction
을 메뉴 관리자에 추가하는 것을 잊지 마시고 모든 것을 적용한 후에 메뉴 관리자를 업데이트해야합니다. 메뉴 관리자에서 updateAll(true)
방법으로 전화하십시오. 메뉴 관리자가 액셀러레이터 할당을 아직 알지 못했기 때문에이 업데이트가 필요합니다!
이것은 SWT + JFace 애플리케이션일까요, 아니면 이클립스 플러그인의 일부입니까? –
그냥 jface (swt)입니다. –