2
我正在爲用戶按空間(或返回)來調用函數的OSX的Obj-C應用程序。然而,有時在用戶按空格鍵幾次之後程序認爲用戶仍在按空間,因此它會調用函數數千次直到崩潰。我放了一段時間,所以空間只能每2秒按一次,但這隻會減緩崩潰。停止崩潰的唯一方法是讓用戶再次按空格。空間按下Obj-C中的錯誤?
我該如何解決這個問題?
int key = ([[incomingEvent charactersIgnoringModifiers] UTF8String])[0];
key = [incomingEvent keyCode];
switch(key)
{
// return and space
case 36:
case 49:
if (CFAbsoluteTimeGetCurrent() - lastSpaceTime > acceptableTimeBetweenSpace)
{
// do stuff
printf("space pressed");
// lastSpaceTime is now
lastSpaceTime = CFAbsoluteTimeGetCurrent();
}
else
{
printf("not enough time since last space!");
// break;
// return incomingEvent;
}
break;
case 53:
//do stuff
break;
}
我嘗試添加這樣的:在else塊
CGEventRef simulateSpaceUp, simulateSpaceDown;
simulateSpaceDown = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)49, true);
simulateSpaceUp = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)49, false);
。我在這裏做錯了什麼?
你爲什麼要分配'鍵'這樣的兩次? –
對不起,在我切出這些事件之前,還有很多其他案件事件,第一條關鍵線路來自更早。對不起,缺乏清晰度:) – Sciguy77
你能解釋一下你是如何確定問題出現在這些問題上的嗎?你確定它不在你切除的位中嗎? –