2009-04-01 15 views
2

Ich versuche, eine App zu schreiben, wo ich Tastenanschläge akzeptieren muss, und eine Funktion aufrufen, wenn der Benutzer die Eingabe beendet hat (oder wenn eine bestimmte Verzögerung zwischen den Tastenanschlägen vorhanden ist).Kakao: Zeit zwischen den Tasten drücken?

Wie kann ich die Zeit zwischen zwei Tastenanschlägen messen?

Antwort

5

Wahrscheinlich ist es ein besserer Ansatz, das mit jedem Tastendruck verknüpfte NSEvent abzurufen und den Unterschied in der Eigenschaft -timestamp zu vergleichen.

8

Etwas wie folgt aus:

NSDate *start = [NSDate date]; 
// do the thing you are timing 
NSDate *stop = [NSDate date]; 

NSTimeInterval duration = [start timeIntervalSinceDate:stop]; 
+1

Ich denke, die letzte Zeile sollte sein: NSTimeInterval duration = [stop timeIntervalSinceDate: start]; – splattne

+0

Kann dies Millisekunden messen? –

0
  • Sie könnten Setup Timer etwas X Höhe der Zeit ausgeführt werden, nachdem Benutzer die Eingabe beendet, starten Sie die Zeit, jeden etwas Benutzertyp Zeit - so wird es Timer Ablauf verzögern.
  • Nicht sicher, wie rechenintensiv dies ist, wenn es einfach ist, Timeout auf Timer zurückzusetzen.

  • Optional können Sie den Timer für den letzten Tastendruck für X Zeit starten. Bei Ablauf können Sie den Zeitstempel des letzten Tastendrucks überprüfen, den Sie beim letzten Tastendruck gespeichert haben. Dann können Sie den Zeitgeber neu starten, der mit der Zeit (Timeout - letzte Tastendruckzeit) beginnt. Nach Ablauf wiederholen Sie die Überprüfung. Dann, bei jedem Tastendruck, wenn der Timer läuft, nur Aktualisierungszeitstempel des letzten Tastendrucks ...
Verwandte Themen