Repetição lenta do evento principal do macOS

Estou tentando criar um pequeno jogo de demonstração WASD no macOS. estou a usarNSEvent para manipular os principais eventos. Para detectar as teclas pressionadas, estou procurando porkeyDown eventos. Aqui está o que eu tenho:

    NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
        (keyEvent) -> NSEvent? in
        if self.keyDown(with: keyEvent) {
            return nil
        } else {
            return keyEvent
        }
    }

func keyDown(with event: NSEvent) -> Bool {

    userInt.keyDown(key: event.characters)

    return true
}

Então, aqui estou segurando as teclas (como seria de esperar de um jogo) e estou tendo um movimento muito lento. Tipo, quando eu estou segurando, é muito esquisito. Após uma inspeção mais aprofundada, vi que o intervalo de repetição de chave era 0,1s, definido nas minhas preferências do sistema. Isso significa que ele está pulando quadros. No entanto, em um jogo, não quero que essa configuração afete o movimento. Então, como posso detectar um evento de retenção de chavesem sendo mantido pressionado pelo intervalo de repetição de tecla?

questionAnswers(1)

yourAnswerToTheQuestion