我想在GWT中处理粘贴事件和捕获粘贴文本 TextBox
。我检查过TextBox
中的粘贴事件没有标准处理程序。
答案 0 :(得分:3)
我发现可以添加一些javascript本机代码来实现:
public class PasteAwareTextBox extends TextBox {
public PasteAwareTextBox() {
super();
sinkEvents(Event.ONPASTE);
}
@Override
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
switch (event.getTypeInt()) {
case Event.ONPASTE:
onPasted(getClipboardData(event));
break;
}
}
private void onPasted(String clipboardData) {
System.out.println("Pasted:" + clipboardData);
}
private static native String getClipboardData(Event event) /*-{
return event.clipboardData.getData('text/plain');
}-*/;
}
1)订阅粘贴事件。
2)通过JSNI呼叫event.clipboardData.getData('text/plain');
。