# Interception de keyboard event (Applescript Studio)



## Bruno Bellamy (21 Novembre 2007)

Je débute avec Xcode 3, et j'ai essayé de trouver la solution à mon problème ici et là, mais sans grand succès. Ma question est peut-être neu-neu, si c'est le cas, désolé... 

Dans une bête fenêtre, j'ai posé un Text View, éditable, et je souhaiterais intercepter les événements clavier pour modifier le contenu de ce Text View. En gros, disons que ce serait un éditeur de texte fonctionnant avec des raccourcis clavier.

J'ai donc lié ce Text View au script AppleScript incorporé au projet, en cochant keyboard up dans l'inspecteur, ce qui m'a généré un "on keyboard up theObject event theEvent" dans le script, et j'ai ajouté un p'tit code de test. Ça donne ça :

on keyboard up theObject event theEvent
    if command key down of theEvent then
        set title of window of theObject to "pomme"
    end if
    if option key down of theEvent then
        set title of window of theObject to "alt"
    end if
    if shift key down of theEvent then
        set title of window of theObject to "maj"
    end if
end keyboard up

Déjà, il m'a bien fallu constater que l'événement keyboard down n'est apparemment pas géré du tout. Je ne sais pas si ça va me poser problème, mais je me suis rabattu sur keyboard up.

Là, ça fonctionne, et le titre de ma fenêtre change bien lorsque je presse alt ou shift (au moins la connexion est faite, c'est déjà un résultat ). Mais d'une part la touche Command n'est pas gérée (ou plutôt si, j'ai un signal sonore comme pour une erreur, mais pas d'exécution de la partie du script qui m'intéresse, ce qui laisse penser que je ne peux pas intercepter Command), et surtout, le contenu de ma fenêtre de texte est affecté. Je ne peux donc pas à proprement parler "intercepter" l'événement, c'est à dire l'empêcher d'être pris en compte par la fenêtre de texte (qui doit rester éditable par ailleurs).

Donc voilà, je suis un peu perdu...
C'est pas "vital" du tout, je bidouille par curiosité, mais si une bonne âme peut m'éclairer, ce sera sympa. D'avance, merci.


----------



## Bruno Bellamy (26 Novembre 2007)

Ahem... 

Bah mince, j'aurais pas imaginé que c'était à ce point une question-piège.


----------



## tatouille (26 Novembre 2007)

```
tell application "System Events"
    tell process "Finder" to keystroke "c" using {shift down, command down}
end tell
```


----------



## Bruno Bellamy (26 Novembre 2007)

Heu...

Merci Tatouille, mais... je comprends pas bien. 

Ce script déclenche l'événement correspondant à la pression de shift-command-c dans le Finder, c'est bien ça ?

Mais ça doit intervenir où ? Et en quoi est-ce que ça résoudrait ma difficulté à intercepter les événements clavier dans mon petit programme en AppleScript Studio ?

Navré, c'est peut-être évident pour d'autres, mais comme j'ai dit, je découvre Xcode...

S'il est possible de m'expliquer un tout petit peu plus comment ça marche, ou ce que ça fait, ce serait sympa. Merci d'avance.


----------

