[Résolu] Equivalent Cocoa de FlushEvents?

berfisberfis Membre
juillet 2013 modifié dans API AppKit #1

Bonjour,


 


J'ai absolument besoin de me débarrasser d'events produits par d'éventuels utilisateurs nerveux. La répétition par touche maintenue, par exemple, envoie un certain nombre de keydowns durant un changement de vue dans la fenêtre, qui nécessite des calculs. Ces events viennent parasiter la nouvelle vue.


 


Aux âges farouches de Carbon, il existait la routine FlushEvents, qui vidait la file d'attente... mais c'était avant le multi-threading...


 


Comment reproduire ce résultat aujourd'hui? Je souhaite me débarrasser uniquement des keyDown events. La doc est confuse à  ce sujet...


 


D'avance merci!


Mots clés:

Réponses

  • mpergandmpergand Membre
    juin 2013 modifié #2


    - (void)discardEventsMatchingMask:(NSUInteger)mask beforeEvent:(NSEvent *)lastEvent


     


    Dans NSApplication ou NSWindow.


  • berfisberfis Membre
    juillet 2013 modifié #3

    OK mpergand, merci. Voilà  pour l'équivalent de la fonction. Qu'en est-il des paramètres? FlushEvents (everyEvent, 0) vidait la file au moment de l'appel. Qu'est-ce que je fais avec beforeEvent? Comment je le détermine?



  • [NSApp discardEventsMatchingMask:NSKeyDownMask|NSKeyUpMask beforeEvent:[NSApp currentEvent]];
  • Merci mpergand, ça marche... comme autrefois!


Connectez-vous ou Inscrivez-vous pour répondre.