我正在Mac OS X 10.10.1上编写SWT应用程序。
通常,如果输入 Cmd - W ,窗口将关闭,如果输入 Cmd - ,应用程序将终止Q 。但是 Cmd - W 快捷方式在我的SWT应用程序上不起作用( Cmd - Q 正在运行)。
我是否需要自己为 Cmd - W 写一些关键事件处理程序?
答案 0 :(得分:1)
是的,你需要使用一个关键的监听器来解决这个问题。
由于您想要处理密钥而不管哪个控件具有焦点,您可能希望使用Display.addFilter
来处理事件:
Display display = ... your display
Listener keyListener = new KeyListener();
display.addFilter(SWT.KeyDown, keyListener);
class KeyListener implements Listener
{
@Override
public void handleEvent(final Event event)
{
if (event.stateMask == SWT.COMMAND && event.keyCode == 'w')
{
... close the window
}
}
}
当窗口关闭时,您还需要使用Display.removeFilter
来停止使用此侦听器。