有没有一种方法来测试JavaScript的键盘事件处理程序(keypress,keyup,keydown事件)?
我知道我可以声明这样的事件处理程序:
function keyUpEvHandler(e) {
... // code here
}
$('#myId').keyup(keyUpEvHandler);
Run Code Online (Sandbox Code Playgroud)
然后在单元测试中运行此函数,但我必须准备事件参数对象与按下实际键时传递的相同:
var e = {keyCode: 70, ...};
Run Code Online (Sandbox Code Playgroud)
有没有办法触发这个事件并传递关键代码作为参数或类似的东西?不幸的是,jQuery trigger()docs不包括键盘事件.
我正在考虑从WinForms中为我的一些应用程序投入WPF,目前我正在研究组合条形码阅读器/文本输入程序(医疗保健患者表格).
为了能够处理条形码字符,我依赖于WinForms中的Keypreview属性(因为无论焦点是什么控件都可以扫描条形码).
但对于WPF应用程序,我似乎无法在VS2008或VS2010中找到KeyPreview属性.
是否有替代方法/解决方案来处理WPF中的条形码字符?
Rgrds Henry
为android编写字典应用程序.想要根据当前输入语言设置翻译方向(更准确地说,软键盘上显示的字母语言).例如,我们得到了英语 - 法语的语言对.我想要的是,当用户输入英文字母(显示英文键盘布局)时,翻译方向是直的,当键盘布局改为法语时,翻译方向也会改变为倒置.
所以,问题是:在Android输入法框架中是否有任何事件,它允许跟踪这种布局的变化.如果没有,也许有一些标准的技巧来做我需要的?
先谢谢你,Alex
android keyboard-layout keyboard-events android-input-method
我希望我的JavaFX程序能够响应键盘事件.
我尝试将监听器添加到root Pane,最顶层Pane,但它不响应事件!
这是我的代码:
AnchorPane root = new AnchorPane();
root.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent t) {
pressKey(t.getCharacter().charAt(0));
}
});
root.setOnKeyReleased(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent t) {
releaseKey(t.getCharacter().charAt(0));
}
});
root.addEventHandler(EventType.ROOT, new EventHandler<Event>() {
@Override
public void handle(Event t) {
if (t.getClass().equals(KeyEvent.class)) {
System.out.println("AAARGH! " + ((KeyEvent)t).getCharacter());
}
}
});
Run Code Online (Sandbox Code Playgroud)
为什么你不工作,关键事件?我在这里做错了吗?
可以肯定的是,鼠标事件可以使用相同的代码正常工作.
在文档中它说:
KEYEVENTF_EXTENDEDKEY(0x0001):如果指定,则扫描代码前面有一个值为0xE0(224)的前缀字节.
有人可以解释这意味着什么吗?
这有什么区别:
keybd_event(RIGHT, 0, 0, 0);
keybd_event(RIGHT, 0, 2, 0);
Run Code Online (Sandbox Code Playgroud)
还有这个:
keybd_event(RIGHT, 0, 1 | 0, 0);
keybd_event(RIGHT, 0, 1 | 2, 0);
Run Code Online (Sandbox Code Playgroud)
因为当我执行这段代码时,我看不出有什么区别?
另外,什么是"字节bScan"?在描述中它是:密钥的硬件扫描代码.那意味着什么?
我在自定义键盘上添加了textfield(keyboardTextField)和UISwitch.我可以在Switch value my code的基础上为(keyboardTextField)设置焦点ON或OFF.
- (void)switchToggled:(id)sender
{
UISwitch *mySwitch = (UISwitch *)sender;
if ([mySwitch isOn])
{
[keyboardTextField becomeFirstResponder];
}
else
{
[keyboardTextField resignFirstResponder];
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我的自定义键盘在我的设备的每个应用程序中启动它时,第一次发生了什么事情,但是在将Switch值更改为On然后OFF并且现在我的自定义后,我无法选择主应用程序的输入视图.键盘无法在我的设备的任何应用程序中写任何东西.
keyboard-events becomefirstresponder ios8 custom-keyboard ios-keyboard-extension
MDN表示KeyboardEvent.which已弃用.如何将其替换为非弃用版本?
例如,我有以下内容:
window.onkeydown = (event) => { console.log(event.which); }Run Code Online (Sandbox Code Playgroud)
我认为event.key.charCodeAt()可以代替event.which,但是这不会对键,如工作ALT,CTRL或者ENTER,它只是工作,如果event.key.length === 1:
window.onkeydown = (event) => { console.log(event.key.charCodeAt()); }Run Code Online (Sandbox Code Playgroud)
总括来说,event.which != event.code和event.which != event.key,因此我无法简单地使用event.key.
是否有替代品event.which检测组合按键包括ALT,CTRL或ENTER?
我会从keydown事件中得到一个字符。
在我可以使用的所有浏览器中event.key,它的工作正常,但在 android 中结果是别的东西
event.key: unidentified
event.code: ''
event.which: `229` (for [a-z0-9] is always this number)
window.event.keyCode: `229`
Run Code Online (Sandbox Code Playgroud)
租用是旧的 stackoverflow 帖子,但它不再起作用了。
用于在 android 中测试的codepen 演示(IOS 和 PC 工作正常)
我如何从中获取密钥代码或密钥字符串 KeyboardEvent
我正在寻找一种可能性来检测用户何时点击底部的 android 返回按钮以便在颤动中关闭键盘。问题如下:如果用户点击文本字段,它就会获得焦点并出现键盘,这里一切都很好。我将文本字段放在 GestureDetector 内,因此如果用户点击文本字段之外的某个位置,则会调用 unfocus()。但在 Android 上,还有另一种方法可以关闭键盘:使用智能手机底部的后退按钮。有什么方法可以检测用户在键盘打开时点击它的时间吗?据我了解,WillPopScope仅在后退按钮指向左侧时起作用,但是当键盘打开时,后退按钮指向底部,它有另一个用途。Keyboard_visibility 包对我不起作用。将侦听器添加到 KeyboardVisibilityNotification 时,onHide 和 onChanged 方法未触发。
keyboard android keyboard-events android-softkeyboard flutter
我想要响应按键,例如escmacOS/OSX 上的按键以及在 iPad 上使用外部键盘时的按键。我怎样才能做到这一点?
我曾想过将@available/#available与 SwiftUI 一起使用onExitCommand,这看起来很有前途,但不幸的是这只适用于 macOS/OSX。除了 macOS/OSX 之外,如何响应 SwiftUI 中的按键操作?