2016-11-15 1 views
0

Я использую TextViewer, и по умолчанию я получаю контекстные меню SWT Copy и Select All. Есть ли способ удалить привязку клавиш к действиям?Как разрешить действие копирования в TextViewer без привязки клавиш?

Специальный случай: Мне нужно это, потому что связывание ключей сталкивается с привязкой клавиш, которые у меня есть в моем мастер-дереве.

Я не хочу, чтобы пользователь использовал Ctrl + C для TextViewer и использовать только контекстное меню правой кнопкой мыши «Копировать».

+0

Если вы чувствуете ответ решить эту проблему, пожалуйста, отметьте его как «принято», нажав на зеленую галочку. Это помогает сосредоточиться на старых постах, у которых до сих пор нет ответов. –

ответ

0

Прежде всего, вы не должны пытаться отключить общую функциональность, предоставляемую платформой.

Прикладное программное обеспечение основывается на платформе по какой-либо причине: обеспечивает согласованный интерфейс для пользовательских взаимодействий, общих для приложений.

Если вы по-прежнему хотите отключить привязку определенных ключей, вы можете использовать StyledText::addKeyVerifyListener или Display :: addFilter() `для перехвата ключевых штрихов и предотвращения обработки соответствующего события.

Например:

StyledText styledText = textViewer.getTextWidget(); 
styledText.addVerifyKeyListener(new VerifyKeyListener() { 
    @Override 
    public void verifyKey(VerifyEvent event) { 
    if(event.character == 'c' && (event.stateMask & SWT.CTRL) != 0) { 
     event.doit = false; 
    } 
    } 
}); 
Смежные вопросы