gpt4 book ai didi

java - Eclipse RCP 应用程序键绑定(bind)与文本框中的输入发生冲突

转载 作者:行者123 更新时间:2023-12-01 11:06:25 28 4
gpt4 key购买 nike

我已将 W,A,S,D 指定为通过键绑定(bind)扩展点进行缩放/滚动的热键,这些是全局热键。这会导致我无法在文本框中输入 WASD 的问题。我应该如何解决这个问题?我正在考虑禁用热键或在文本框 OnFocus 事件处理程序中执行某些操作。

最佳答案

如果您确实认为 W A S D 是很好的按键绑定(bind),并且如果您仍然认为它们为了实现良好的全局键绑定(bind)(我都怀疑),您可以使用 key binding contexts使绑定(bind)仅在编辑控件外部时可用。

定义 org.eclipse.ui.contexts 扩展后,请将此上下文分配给 contextId 属性所考虑的相应键绑定(bind)。

现在,这些键绑定(bind)仅在指定的上下文处于 Activity 状态时才可用。 IContextService 可用于激活和停用上下文。

使用 display filter在输入诸如 TextSpinnerStyledText 等编辑控件时停用上下文,并在离开此类控件时激活它。

例如:

Listener filter = new Listener() {
IContextActivation activation;
@Override
public void handleEvent( Event event ) {
if( isEditingWidget( event.widget ) ) {
if( event.type = SWT.FocusIn ) {
contextService.deactivateContext( activation );
} else {
activation = contextService.activateContext( "context id" );
}
}
}
};
display.addFilter( SWT.FocusIn, filter );
display.addFilter( SWT.FocusOut, filter );

关于java - Eclipse RCP 应用程序键绑定(bind)与文本框中的输入发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902014/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com