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