就像我在标题中所说的,我想在Dart中模拟一个keyup事件。问题是我还没有找到如何创建新的KeyboardEvent对象。
我发现的唯一方法是使用Event(String type)构造函数,然后将其分派(dispatch)到window对象上。但这不起作用,因为我的“keyup”处理程序在参数中使用了KeyboardEvent。例:
window.on.keyUp.add((KeyboardEvent e){
print('keyUp handler');
});
KeyboardEvent e = new Event("KeyboardEvent");
window.on.keyUp.dispatch(e);
有没有一种方法可以创建和分发KeyBoardEvent来模拟Dart中的“键盘”?
另外,我应该提到的是,由于有了js-interop库,我也尝试在JavaScript中触发事件,但是它只会触发JS处理程序。
最佳答案
尝试以下代码:
window.on.keyUp.add((Event event){
print('keyUp handler');
if(event is KeyboardEvent)
{
KeyboardEvent keyEvent = event as KeyboardEvent;
//do stuff with keyEvent if needed
}
});
window.on.keyUp.dispatch(new Event("keyup"));
我认为Event构造函数上的参数必须是事件的类型。另外,您可以检查事件是否为keyboardEvent,因此可以处理例如KeyIdentifier。
关于dart - 如何在Dart中触发KeyboardEvent,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13595098/