我正在使用 SuggestBox 并尝试捕获用户选择建议时触发的 SuggestionEvent。我可以很容易地用普通的事件处理程序做到这一点:
itemInputBox.addEventHandler(new SuggestionHandler() {
@Override
public void onSuggestionSelect(SuggestionEvent event) {
Window.alert(event.getSelectedSuggestion().getReplacementString());
}
});
这很好用,使用正确的替换字符串触发事件。但是,由于代码更加简洁,我喜欢尽可能使用 UiHandler。所以我尝试了以下方法:
@UiHandler("itemInputBox")
void onSuggestionSelect(SuggestionEvent event) {
Window.alert(event.getSelectedSuggestion().getReplacementString());
}
但这会导致以下错误:
[WARN] [jsonp] - Method 'getAssociatedType()' could not be found in the event 'SuggestionEvent'.
[ERROR] [jsonp] - Parameter 'SuggestionEvent' is not an event (subclass of GwtEvent).
我有一个不同的 UiHandler 在同一个 SuggestBox 上正常工作,所以我有点困惑我哪里出错了:
@UiHandler("itemInputBox")
void onKeyUp(KeyUpEvent event) {
Window.alert("Key up event firing.");
}
我不明白为什么一个 UiHandler 正确触发,而另一个导致错误。