就像我在标题中所说的,我想在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/

10-13 09:31