我以前从未遇到过这样的问题,可能只是在某处犯了一个非常简单的错误,但我一生都无法识别除字母数字字符和符号之外的任何东西。退格/删除未注册。我尝试使用键变量和键代码,但似乎没有任何效果。
我尝试过的事情:
key == BACKSPACE
int(key) == 8
keyCode == DELETE
没有任何效果。当我尝试println(key)
时,它们返回 null
这是我的代码。这只是一个片段,程序的其余部分包括其他几种方法,并包含一个 draw(( 循环。我已经将问题缩小到这个块。
void keyTyped() {
if (key == '`' || key == '~') {
consoleShow = !consoleShow; //toggle boolean
command = ""; //clear command string
} else if (keyCode == DELETE) { // --NOT WORKING--
command = command.substring(0, command.length()-1);
} else if (consoleShow == true && key != CODED) { // "key != CODED" isn't working either. (CAPS-LOCK is recognized as a char)
command += key; //concatenate character to end of command string
}
println(key);
}
问题是你没有一个draw()
循环来保持程序的活动并保持键侦听器的活动。因此,只需void draw() {}
放在程序的开头,它就会起作用。
如果您只想使用退格键,尽管您可以使用更少的代码来实现它:
void draw() {}
void keyTyped() {
if (key == BACKSPACE) println("You typed the key backspace :)");
}
我修复了它。 keyTyped()
是不可靠的。当更换为keyPressed()
一切正常时。