如何处理大写或选项的 shift + a 键?
a
可以是任何关键字,例如1
或!
/
或?
或
h
或 shift + h 以大写字母获取H.
我正在尝试使用Paper.js构建一个WYSIWYG。
当我双击文本项目时,我希望能够更改文本。我有这个工作,但如果我点击 shift + a 得到A
我得到shifta
。
答案 0 :(得分:3)
!@#$%^&*()_+
等字符应由onKeyDown
正确处理。要处理大写字母,请检查shift-modifier是否处于活动状态:
function onKeyDown(event) {
if (event.key == 'shift' || event.key == 'command' || event.key == 'option' || event.key == 'caps-lock' || event.key == 'control') return;
if (event.modifiers.shift || event.modifiers.capsLock) {
console.log('The ' + event.key.toUpperCase() + ' key was pressed!');
}
else console.log('The ' + event.key + ' key was pressed!');
}
答案 1 :(得分:0)
function onKeyDown(event) {
if (event.key == 'shift' || event.key == 'command' || event.key == 'option' || event.key == 'caps-lock' || event.key == 'control') return;
if (event.modifiers.shift || event.modifiers.capsLock) {
text.content = text.content + event.key.toUpperCase();
}else if (Key.isDown('space')){
event.preventDefault();
text.content = text.content + " ";
}else if (Key.isDown('backspace')){
var subStr = text.content.substring(0, text.content.length - 1)
text.content = subStr;
}
else{
text.content = text.content + event.key;
}
}
这就是我最终的结果。