如何为大写Ctlr + A和小写Ctlr + a的控制字符创建KeyEvent

时间:2019-03-25 18:46:12

标签: xamarin xamarin.android

我正在使用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。

0 个答案:

没有答案