【发布时间】:2017-09-21 00:44:10
【问题描述】:
我正在使用 Vaadin,我有一个 TextArea,我希望用户能够在文本中输入制表符。但是在 Web 浏览器中按 Tab 键会循环浏览组件。我可以做任何配置来实现这一点,而不是让用户循环到下一个组件,而是输入 "\t" 的文字?
【问题讨论】:
标签: vaadin
我正在使用 Vaadin,我有一个 TextArea,我希望用户能够在文本中输入制表符。但是在 Web 浏览器中按 Tab 键会循环浏览组件。我可以做任何配置来实现这一点,而不是让用户循环到下一个组件,而是输入 "\t" 的文字?
【问题讨论】:
标签: vaadin
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
【讨论】:
添加一个快捷方式监听器似乎可以工作,例如:
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")
}
});
【讨论】: