Si vous devez absolument le faire par AppleScript, le plus simple est de concaténer votre textToType avec des retours déjà insérés.
Si vous copiez/collez un texte de plusieurs lignes, AppleScript insère des caractères de nouvelle ligne. \n
mais elles ne se traduisent pas bien dans d'autres applications.
set textToType to "NOTICE NOTICE NOTICE" & return & "Notice 2" & return & ¬
"Notice 3" & return & "Notice 4" & return
tell application "System Events"
keystroke textToType
end tell
Le petit 'L' latéral ¬ indique simplement à Applescript que cette nouvelle ligne n'est pas une nouvelle ligne de script mais une continuation de la précédente - afin qu'elle ne défile pas directement de la page.
Sans cela, la ligne ressemblerait à ceci
set textToType to "NOTICE NOTICE NOTICE" & return & "Notice 2" & return & "Notice 3" & return & Notice 4" & return
Personnellement, c'est le genre de tâche que je confierais à la fonction de remplacement de texte intégrée d'Apple plutôt qu'à AppleScript.
Préférences système > Clavier > Texte
Appuyez sur + en bas, tapez votre mot déclencheur, puis copiez/collez à partir de quelque chose comme TextEdit, qui conservera correctement vos retours chariot.
[Vous ne pouvez pas ajouter de retours de chariot directement dans ce panneau de préférences, vous devez copier/coller une source existante. Vous ne pouvez pas non plus voir correctement un remplacement sur plusieurs lignes dans le volet - mais il sera exactement comme vous l'avez copié, à l'usage].
Ensuite, chaque fois que vous tapez votre déclencheur, il le remplacera par votre collage multi-lignes.
Après les commentaires - si vous avez besoin d'un délai entre chaque ligne, vous ne pouvez pas concaténer et devez envoyer chaque appel séparément.
tell application "System Events"
keystroke "NOTICE NOTICE NOTICE" & return
delay 5
keystroke "Notice 2" & return
delay 5
keystroke "Notice 3" & return
delay 5
keystroke "Notice 4" & return
end tell
0 votes
Ne pouvez-vous pas simplement définir plusieurs variables et les sortir toutes dans la boucle ?