Devo impedire a TextViewer di creare nuove righe dopo aver premuto il tasto Invio nel caso in cui il flag preventNewLines sia abilitato.Come impedire la nuova riga in StyledText dopo Invio premuto
ho questo pezzo di codice:
TextViewer myTextViewer = new TextViewer (myGroup, SWT.V_SCROLL
| SWT.FULL_SELECTION
| SWT.BORDER | SWT.WRAP);
myTextViewer.setDocument(new Document(myText));
StyledText myStyledText = myTextViewer.getTextWidget();
myStyledText.addTraverseListener(new TraverseListener() {
@Override
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_RETURN) {
if (preventNewLines)
e.doit = false;
}
}
});
ma rende le nuove linee in ogni caso ... Che cosa sto facendo di sbagliato? Qualcuno potrebbe scrivermi il codice corretto come prevenirlo?
EDIT: OK, ho trovato la risposta dalla fortuna, spero che aiuta a qualcun altro, forse ...
myStyledText.addVerifyKeyListener(new VerifyKeyListener() {
@Override
public void verifyKey(VerifyEvent e) {
if (preventNewLines &&
(e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)) {
e.doit = false;
}
}
});
Dovresti rispondere alla tua domanda e poi controllarla come se fosse ancora una domanda aperta. – GenericJam