Eclipse plugin 如何禁用助记符?

Eclipse plugin 如何禁用助记符?,eclipse-plugin,mnemonics,Eclipse Plugin,Mnemonics,我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题: 我创建了一个Eclipse编辑器,我想禁用Eclipse的助记菜单,例如:ALT+a相当于菜单搜索。因为我需要在编辑器中使用这些组合(Alt+…)。怎么办?如中所建议: 创建您自己的方案并向其添加所需的密钥绑定。在自定义ini文件中添加以下行: 按照以下建议: 创建您自己的方案并向其添加所需的密钥绑定。在自定义ini文件中添加以下行: 一个方案需要一个键来覆盖Alt <extension point="o

我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题:

我创建了一个Eclipse编辑器,我想禁用Eclipse的助记菜单,例如:ALT+a相当于菜单搜索。因为我需要在编辑器中使用这些组合(Alt+…)。怎么办?

如中所建议:

创建您自己的方案并向其添加所需的密钥绑定。在自定义ini文件中添加以下行:

按照以下建议:

创建您自己的方案并向其添加所需的密钥绑定。在自定义ini文件中添加以下行:


一个方案需要一个键来覆盖Alt

<extension
     point="org.eclipse.ui.bindings">
  <scheme
        id="myscheme"
        name="My Scheme"
        parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
  </scheme>
  <key
        commandId="mycommand"
        contextId="mycontext"
        schemeId="myscheme"
        sequence="Alt+A">
  </key>
  <key
        commandId="mycommand"
        contextId="mycontext"
        schemeId="myscheme"
        sequence="Alt">
  </key>

命令

<extension
     point="org.eclipse.ui.commands">
  <command
        id="mycommand"
        name="My Command">
  </command>


一个方案和一个键来覆盖Alt

<extension
     point="org.eclipse.ui.bindings">
  <scheme
        id="myscheme"
        name="My Scheme"
        parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
  </scheme>
  <key
        commandId="mycommand"
        contextId="mycontext"
        schemeId="myscheme"
        sequence="Alt+A">
  </key>
  <key
        commandId="mycommand"
        contextId="mycontext"
        schemeId="myscheme"
        sequence="Alt">
  </key>

命令

<extension
     point="org.eclipse.ui.commands">
  <command
        id="mycommand"
        name="My Command">
  </command>


这有助于我处理
空。方案
: 将其放在
i应用程序.start()的顶部


您将把默认方案设置为您的

这有助于我处理
空。scheme
: 将其放在
i应用程序.start()的顶部


您将把默认方案设置为您的

谢谢你的回复。我试过你推荐的,但没用。事实上,当我的编辑器处于活动状态时,我已经使用了propore方案(在FocusListener中使用IBindigService)。在这种情况下,eclipse快捷键不起作用,但当我按下“ALT+F”时,“文件”菜单会激活,例如(ALT+a激活搜索菜单),当它们表示eclipse的助记符菜单时,我需要在编辑器中使用他的组合(ALT+…)@伊门:很抱歉读到这个。我真的希望你能找到一个解决方案,并张贴在这里。您是否尝试过儿童上下文提示来检查它是否捕获了一些关键事件?@VonC:首先,感谢您对我的问题表现出的兴趣。我尝试按照您的建议使用过滤器,但问题是当按ALT键时,我的编辑器会截取该键,但也会删除该键。因此,我的编辑器失去焦点,Eclipse菜单被激活(文件、搜索…)。我不明白你的问题?@Imen:好吧,因为“你在上下文中定义的任何键都将优先于原始上下文”,这看起来是一个覆盖ALT“菜单焦点激活”行为并用你的编辑器快捷键激活来取代它的好方法。因此我提出了这个问题。我在eclipse网站上问了这个问题,下面是我收到的回复:“没有办法从eclipse中禁用助记符,因为它们是由您的平台(windows)和窗口管理器(windows)操作的。您必须从windows本身禁用助记符。”如何从windows禁用助记符?谢谢您的回复。我试过你推荐的,但没用。事实上,当我的编辑器处于活动状态时,我已经使用了propore方案(在FocusListener中使用IBindigService)。在这种情况下,eclipse快捷键不起作用,但当我按下“ALT+F”时,“文件”菜单会激活,例如(ALT+a激活搜索菜单),当它们表示eclipse的助记符菜单时,我需要在编辑器中使用他的组合(ALT+…)@伊门:很抱歉读到这个。我真的希望你能找到一个解决方案,并张贴在这里。您是否尝试过儿童上下文提示来检查它是否捕获了一些关键事件?@VonC:首先,感谢您对我的问题表现出的兴趣。我尝试按照您的建议使用过滤器,但问题是当按ALT键时,我的编辑器会截取该键,但也会删除该键。因此,我的编辑器失去焦点,Eclipse菜单被激活(文件、搜索…)。我不明白你的问题?@Imen:好吧,因为“你在上下文中定义的任何键都将优先于原始上下文”,这看起来是一个覆盖ALT“菜单焦点激活”行为并用你的编辑器快捷键激活来取代它的好方法。因此我提出了这个问题。我在eclipse网站上问了这个问题,下面是我收到的答复:“没有办法从eclipse中禁用助记符,因为它们是由您的平台(windows)和窗口管理器(windows)操作的。您必须从windows本身禁用助记符”我如何从windows禁用助记符?
public Object start(IApplicationContext context) { 
    // set the default shortcuts
PlatformUI.getPreferenceStore().setDefault(IWorkbenchPreferenceConstants.KEY_CONFIGURATION_ID, "your.scheme"); //$NON-NLS-1$ 
    // start your app 
}