我正在使用xamarin表单开发自定义键盘,我需要在自定义渲染器上为Ctrl键创建KeyEvent,但是我找不到有关该操作的任何文档。
我尝试了构造函数与KeyEvent类的不同组合,但均未成功。例如:
webView.DispatchKeyEvent(new KeyEvent(0, 0, KeyEventActions.Down, KeyEvent.KeyCodeFromString(digit), 0, MetaKeyStates .ShiftLeftOn & MetaKeyStates.CtrlLeftOn));
webView.DispatchKeyEvent(new KeyEvent(0, 0, KeyEventActions.Up, KeyEvent.KeyCodeFromString(digit), 0, MetaKeyStates.ShiftLeftOn & MetaKeyStates.CtrlLeftOn));
我还尝试了以下小写形式,但没有成功
webView.DispatchKeyEvent(new KeyEvent(0, 0, KeyEventActions.Down, KeyEvent.KeyCodeFromString(digit), 0, MetaKeyStates.CtrlLeftOn));
webView.DispatchKeyEvent(new KeyEvent(0, 0, KeyEventActions.Up, KeyEvent.KeyCodeFromString(digit), 0, MetaKeyStates.CtrlLeftOn));
这不提供我期望的控制字符,如Ctrl + C或Ctrl + c。我只为c或C之类的实际字符获取事件,而没有控件。我将这段代码用于WebView,并使用JavaScript验证输出。即使检查javaScript事件的ctrlKey属性,将标志设置为false,Java脚本也可以正确报告按下的字符,而不是Ctrl。