2013-08-15 3 views
0

Я создаю плагин Eclipse и используя всплывающее меню SWT (контекстное меню) для одного из элементов управления в плагине. Элемент контекстного меню работает, но ускоритель (ярлык), который я установил для элемента меню, не действует, и он не работает. Я создаю так Пункт в меню:SWT popup menu shortcut not working

MenuItem parent = new Menu(getShell(), SWT.POP_UP); 
MenuItem menuItem = new MenuItem(parent, SWT.PUSH); 
menuItem.setText("Click me"); 
menuItem.setAccelerator(SWT.CTRL+ 'F'); 

Обратите внимание, что проблема быстрого доступа происходит в меню POP_UP, а не пункт BAR меню.

ответ

0

Попробуйте item.setAccelerator(SWT.MOD1 + 'A');

МОД1, МОД2 .. Mod4 являются клавиатуры и/или мыши событие маски, указывающий, что ключ МОД1 была нажата на клавиатуре, когда событие было генерироваться.

Другие ссылки here и there.

Edit:

Если вы разрабатываете плагин для Eclipse, и вы ставите на View меню, то вполне возможно, что система быстрого доступа платформы Eclipse конфликтует с ускорителем вашего SWT компонента.

Я предлагаю вам реорганизовать ваш код, чтобы вы использовали ярлыки расширение, которое обеспечивает Eclipse.

+0

Я тоже попробовал SWT.MOD1, и он не работал – appcoder

+0

Да. Im использует плагин eclipse. Мой плагин имеет много просмотров (скажем, 10-15), и у меня есть некоторые элементы управления для каждого из представлений, которые предоставляют некоторые функции всплывающего меню. Как зарегистрировать ярлык для каждого пункта контекстного меню? – appcoder