我正在使用Vaadin并且我有TextArea
,我希望用户能够在文本中输入Tabs。但是按Tab键会循环浏览Web浏览器中的组件。是否有任何配置可以实现此目的,以便不是将用户循环到下一个组件,而是输入文字"\t"
?
答案 0 :(得分:2)
Vaadin TextArea是一个简单的HTML <textarea>
元素,如果没有客户端修改,它不支持开箱即用的制表符字符输入。制表符通常用于切换可聚焦元素(tabindex)。
您可以使用例如CodeMirror(https://vaadin.com/directory#!addon/v-codemirror),用于启用可以处理制表符的客户端代码编辑器。第二种选择是使用客户端JS / GWT扩展来扩展Vaadin TextArea:请参阅Use tab to indent in textarea和https://vaadin.com/docs/-/part/framework/gwt/gwt-extension.html
答案 1 :(得分:1)
添加shortcutlistener似乎有效,例如:
TextArea area = new TextArea("test")
area.addShortcutListener(new ShortcutListener("Shortcut Name", ShortcutAction.KeyCode.TAB, null) {
@Override
public void handleAction(Object sender, Object target) {
area.setValue(area.getValue() + "\t")
}
});