2016-11-15 48 views
0

我正在使用TextViewer並且默認情況下,我正在獲取SWT上下文菜單複製和全選。有沒有辦法從操作中刪除鍵綁定?如何在不使用鍵綁定的情況下在TextViewer中進行復制操作?

特殊情況:我需要這個,因爲鍵綁定與我在主樹中的鍵綁定發生衝突。

我不希望用戶使用Ctrl + CTextViewer並只使用上下文菜單右鍵單擊「複製」。

+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; 
    } 
    } 
}); 
相關問題