Ich habe eine Klasse, die ColumnViewerToolTipSupport
erweitert. Diese Klasse überschreibt createViewerToolTipContentArea()
und bietet benutzerdefinierten Inhalt für die QuickInfo.Wie wird ein benutzerdefinierter Listener über die ESC-Taste anstelle des Standard-Shell-Listeners aufgerufen?
Wenn eine ESC-Taste gedrückt wird, während die QuickInfo geöffnet ist, wird die Methode shell.close()
aufgerufen. Selbst wenn ich der Tooltip-Shell einen Key-Listener hinzugefügt habe, wird shell.close()
selbst aufgerufen.
-Code für Hörer unter:
@Override
protected Composite createViewerToolTipContentArea(Event event, ViewerCell cell, final Composite shell) {
Display.getDefault().getActiveShell().addListener(SWT.KeyDown, new Listener() {
@Override
public void handleEvent(final Event event) {
if (event.type == SWT.KeyDown) {
System.out.println("key pressed ..........close shell");
}
}
});
}
Gibt es hier irgendwelche Fehler ??
Wenn Sie nur auf ein Ereignis hören, ändert sich nicht, was andere Zuhörer tun. –
Was kann ich hier tun, um meinen Hörer statt Shell Listener aufzurufen? –
Sie könnten versuchen, 'getListeners (SWT.KeyDown)' aufzurufen und dann die Listener zu entfernen. –