Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

A_propos_de_TextEdit

21 réponses
Avatar
g4fleurot
Bonjour,

Le post de J.P sur les services m'a donné envie de partager mes
réflexions à propos de TextEdit.

J'ai en permanence une soixantaine d'onglets ouverts dans Safari
répartis dans sept fenêtres par thèmes.

J'ai réalisé un Apple script
<http://s173327841.onlinehome.fr/agora-project_3.1.7/?ctrl=file&targetObjId=fileFolder-10>
qui ouvre une page TextEdit et qui liste tous ces onglets.
Ce script a été réalisé sur l'iMac et il y fonctionne correctement.
Je l'ai copié sur le MBA et là, il ne fonctionne pas.
Après investigation, il se révèle que le comportement de TextEdit est
différent sur les deux machines.
Sur l'iMac, menu Format > Liste, le curseur vient se placer par défaut
dans la case Préfixe et la touche de tabulation le déplace vers
Puces/numéros, Suffixe, etc.
Sur le MBA, menu Format > Liste, la touche tabulation navigue uniquement
entre les cases Préfixe et Suffixe, d'où le nom fonctionnement du
script.
La réinstallation de TextEdit même avec Pacifist à partir du paquet
d'installation d'OS X n'est pas permis.

Sur l'iMac, il y a 16 Go de Ram, mais seulement 4 Go sur le MBA
Ceci pourrait-il expliquer celà ?

Pour info, j'ai réalisé un script similaire qui fait appel à
TextWrangler qui fonctionne sur les deux et qui présente l'avantage
d'appeler l'onglet directement en cliquant sur le http, ce que ne sait
pas faire TextEdit

Cordialement,
--
Gérard FLEUROT [<g4fleurot@free.fr> plus un] vous informe que :
Bizarre, je ne peux pas accélérer le crypto-détonateur parce que le
transistor moléculaire est sur le point de transformer le
capillo-délinéateur alvéolé !

10 réponses

1 2 3
Avatar
DV
B. Graignic a écrit ceci :
J'ai testé " Lister les onglets Safari - TextEdit" et " Lister les
onglets Safari - TextWrangler"
Pour TextWarangler, aucun problème.
Pour TextEdit, impossible à utiliser, j'ai une fenêtre vide bien
qu'apparaisse fugitivement une fenêtre avec des données.
J'utilise un iMac avec 10.11.6, et que je mette les raccourcis en Champs
et liste ou Tous les contrôles, ce n'est pas mieux.

Chez moi (iMac avec 10.11.6 aussi), le script " Lister les onglets
Safari - TextEdit" fonctionne avec "Champs et liste aussi bien qu'avec
"Tous les contrôles".
En revanche, il y a une chose que je ne comprends pas dans ce script :
pourquoi activer TextEdit, le fermer et l'activer à nouveau ? Si on
demande à TextEdit de créer un nouveau document avant de lui envoyer le
texte, comme ceci :
==== tell application "TextEdit"
activate
make new document at the front
set the text of the front document to docText
[...]
end tell
====
on n'a besoin de l'activer qu'une seule fois.
--
Denis
Avatar
g4fleurot
DV après avoir mûrement réfléchi nous suggère :
En revanche, il y a une chose que je ne comprends pas dans ce script :
pourquoi activer TextEdit, le fermer et l'activer à nouveau ? Si on
demande à TextEdit de créer un nouveau document avant de lui envoyer le
texte, comme ceci :
on n'a besoin de l'activer qu'une seule fois.

Et bien, as-tu essayé d'appeler le script tel que tu l'écris plusieurs
fois de suite ?
--
Gérard FLEUROT plus un
Avatar
g4fleurot
B. Graignic a écrit ceci :
Pour ne pas m'embéter, j'ai repris le script de TextWrangler et je l'ai
remplacer par TextEdit et ça roule mais je dois perdre le formatage.

Dans TextWrangler, menu Edit > Text options > Editing, tu coches les
cases Line Numbers, Gutters, Navigation bar, Page guide, Tab stops et tu
auras un formatage acceptable.
L'avantage du script TextWrangler, c'est qu'en faisant un Pomme clic sur
http ou https sur une ligne, ça ouvre directement l'onglet
correspondant.
--
Gérard FLEUROT plus un
Avatar
DV
Fleuger a écrit ceci :
Et bien, as-tu essayé d'appeler le script tel que tu l'écris plusieurs
fois de suite ?

Ben oui, et chez moi ça marche. À moins que je n'aie pas bien compris ce
que tu veux obtenir ?
--
Denis
Avatar
g4fleurot
DV a tout bonnement rédigé :
Ben oui, et chez moi ça marche. À moins que je n'aie pas bien compris ce
que tu veux obtenir ?

Après l'exécutiion du script, le curseur du menu Format > Liste de
TextEdit reste à l'endroit sélectionné c'est à dire dans Puces/numéros.
En relançant le script, il se déplace vers suffixe et le formatage n'est
plus bon.
En quittant TextEdit et en le relançant, le curseur repart de Préfixe et
le formatage redevient correct.
--
Gérard FLEUROT plus un
Avatar
DV
Fleuger a écrit ceci :
Après l'exécutiion du script, le curseur du menu Format > Liste de
TextEdit reste à l'endroit sélectionné c'est à dire dans Puces/numéros.
En relançant le script, il se déplace vers suffixe et le formatage n'est
plus bon.
En quittant TextEdit et en le relançant, le curseur repart de Préfixe et
le formatage redevient correct.

Si je comprends bien, le formatage correct serait une liste numérotée ?
Le souci, c'est que même avec le script original, j'obtiens juste une
liste basique, sans numéros ni puces.
--
Denis
Avatar
g4fleurot
DV aimerait obtenir une réponse à sa question :
Si je comprends bien, le formatage correct serait une liste numérotée ?

Oui. Toute cette séquence de touches sert à obtenir cela.
Du fait des comportements bizarres de TextEdit, j'ai recommencé avec TextWrangler qui est plus simple.
En premier lieu, j'avais mis :
--Write Document Text
tell application "TextEdit"
activate
make new document
set the text of the front document to docText
tell application "System Events"
keystroke "a" using command down
click menu item 10 of menu 5 of menu bar of process "TextEdit" --menu Format>Liste...
display alert "Sélecter 01 02 03... dans le menu déroulant"
end tell
set the bounds of the front window to {60, 110, 1520, 770}
end tell
pas très élégant alors, j'ai essayé d'automatiser
(j'ai ajouté l'explication des touches)
--Write Document Text
tell application "TextEdit" to activate
delay 0.2
tell application "TextEdit" to quit
delay 0.2
tell application "TextEdit"
activate
--make new document
set the text of the front document to docText
tell application "System Events"
keystroke "a" using command down
click menu item 10 of menu 5 of menu bar of process "TextEdit" --menu Format>Liste...
delay 0.2
key code 48 --Tabulation
delay 0.2
click
delay 0.2
key code 49 --Barre d'espace
delay 0.2
repeat 9 times
key code 125 --flèche vers le bas->01 02 03
end repeat
delay 0.2
key code 49
delay 0.2
key code 76 --enter
--display alert "Sélecter 01 02 03... dans le menu déroulant"
end tell
set the bounds of the front window to {60, 110, 1520, 770}
end tell
--
Gérard FLEUROT plus un
Avatar
quark67
Fleuger wrote:
DV aimerait obtenir une réponse à sa question :
Si je comprends bien, le formatage correct serait une liste numérotée ?
Oui. Toute cette séquence de touches sert à obtenir cela.
Du fait des comportements bizarres de TextEdit, j'ai recommencé avec
TextWrangler qui est plus simple.
En premier lieu, j'avais mis :
--Write Document Text
tell application "TextEdit"
activate
make new document
set the text of the front document to docText
tell application "System Events"
keystroke "a" using command down
click menu item 10 of menu 5 of menu bar of process
"TextEdit" --menu Format>Liste...
display alert "Sélecter 01 02 03... dans le menu
déroulant"
end tell
set the bounds of the front window to {60, 110, 1520, 770}
end tell
pas très élégant alors, j'ai essayé d'automatiser
(j'ai ajouté l'explication des touches)
--Write Document Text
tell application "TextEdit" to activate
delay 0.2
tell application "TextEdit" to quit
delay 0.2
tell application "TextEdit"
activate
--make new document
set the text of the front document to docText
tell application "System Events"
keystroke "a" using command down
click menu item 10 of menu 5 of menu bar of process
"TextEdit" --menu Format>Liste...
delay 0.2
key code 48 --Tabulation
delay 0.2
click
delay 0.2
key code 49 --Barre d'espace
delay 0.2
repeat 9 times
key code 125 --flèche vers le bas->01 02 03
end repeat
delay 0.2
key code 49
delay 0.2
key code 76 --enter
--display alert "Sélecter 01 02 03... dans le menu
déroulant"
end tell
set the bounds of the front window to {60, 110, 1520, 770}
end tell

Bonjour, pour sélectionner "01 02 03…" dans le menu déroulant il y a
franchement plus simple et plus direct. Cela devrait vous éviter d'avoir
à relancer TextEdit à chaque fois.
Je ne place ici que la partie correspondant à cette sélection, à vous
d'adapter selon vos besoins (en ajoutant les parties "make new
document", "set the bound of front window..." qui ne devraient pas
devoir être changées).
-------------------------------------------
tell application "TextEdit"
activate
tell application "System Events"
tell process "TextEdit"
click menu item "Liste…" of menu 1 of menu bar
item 5 of menu bar 1
click pop up button 1 of sheet 1 of window 1
click menu item "01 02 03…" of menu 1 of pop
up button 1 of sheet 1 of window 1
click button "OK" of sheet 1 of window 1
end tell
end tell
end tell
-------------------------------------------
Notez bien les points suivants :
- les points de suspension dans les menus de l'app TextEdit sont le
caractère "…" (alt+; sur un clavier Azerty) et non pas 3 points "..." ;
- l'élément de menu "01 02 03…" contient deux espaces entre "01" et
"02" et entre "02" et "03".
Pour ma part, n'allant que sur les newsgroups plus ou moins techniques,
j'affiche les messages dans une police à chasse fixe, ce qui lève les
ambiguités soulevées précédemment.
Si vous avez ultérieurement à cibler un menu comportant une apostrophe,
attention là aussi. Les apps d'Apple emploient généralement correctement
l'apostrophe courbe (' obtenu par alt+maj+' sur un clavier Azerty)
tandis que d'autres apps moins soignées peuvent utiliser l'apostrophe
droite ('). La distinction peut ne pas être très évidente, dans ce cas
il faudra essayer les deux possibilités.
Ou alors, ce qui peut aussi avoir l'avantage de rendre le script
indépendant de la langue, cibler les éléments par leur numéro (mais cela
rend le script moins clair).
Pour voir qu'il y avait deux espace entre "01" et "02" j'ai utilisé ce
bout de code :
---------------
get name of menu item 10 of menu 1 of pop up button 1 of sheet 1 of
window 1
---------------
à l'intérieur des appels "tell app", "tell process" après avoir cliqué
sur le pop up button 1 de la feuille 1 de la fenêtre 1 (la fenêtre 1 est
celle au premier plan).
Avatar
g4fleurot
Bonjour,
Le sympathique quark67 vient d'écrire :
Ou alors, ce qui peut aussi avoir l'avantage de rendre le script
indépendant de la langue, cibler les éléments par leur numéro (mais cela
rend le script moins clair).

Merci pour cette longue réponse très détaillée et instructive pour mes modestes connaissances.
J'ai transformé le script à la lumière de ces données (ci-dessous)
Pour voir qu'il y avait deux espace entre "01" et "02" j'ai utilisé ce
bout de code :
---------------
get name of menu item 10 of menu 1 of pop up button 1 of sheet 1 of
window 1
---------------
à l'intérieur des appels "tell app", "tell process" après avoir cliqué
sur le pop up button 1 de la feuille 1 de la fenêtre 1 (la fenêtre 1 est
celle au premier plan).

Là, j'ai tout compris ce que tu expliques, mais ça ne veut pas fonctionner.
J'ai toujours la réponse :
error "Erreur dans System Events : Il est impossible d'obtenir sheet 1 of window 1 of process "TextEdit". Index non valable." number -1719 from sheet 1 of window 1 of process "TextEdit".
En fait, la liste étant déroulée, dès que je clique sur la fenêtre Applescript, elle se referme
Amicalement,
--
Gérard FLEUROT
tell application "Safari"
--Variables
set windowCount to (number of windows) / 3
set docText to ""
--Repeat for Every Window
repeat with x from 1 to windowCount
set tabCount to number of tabs of window x
--Repeat for Every Tab in Current Window
repeat with y from 1 to tabCount
--Get Tab Name & URL
set tabName to name of tab y of window x
set tabURL to URL of tab y of window x
--set docText to docText & "<a href=" & """ & tabURL & "">" & tabName & "</a>" & linefeed as string
set docText to docText & tabName & " - " & tabURL & linefeed as string
end repeat
end repeat
end tell
--Write Document Text
tell application "TextEdit"
activate
make new document
set the text of the front document to docText
tell application "System Events" to tell process "TextEdit"
keystroke "a" using command down
click menu item "Liste…" of menu 1 of menu bar item 5 of menu bar 1 --menu Format>Liste...
click pop up button 1 of sheet 1 of window 1
click menu item "01 02 03…" of menu 1 of pop up button 1 of sheet 1 of window 1
click button "OK" of sheet 1 of window 1
end tell
set the bounds of the front window to {60, 110, 1520, 770}
end tell
Avatar
g4fleurot
J'ai écrit :
J'ai toujours la réponse : error "Erreur dans System Events : Il est
impossible d'obtenir sheet 1 of window 1 of process "TextEdit". Index
non valable." number -1719 from sheet 1 of window 1 of process "TextEdit".

Bon, ça y est, j'ai fini par comprendre :
tell application "System Events" to tell process "TextEdit"
click menu item "Liste…" of menu 1 of menu bar item 5 of menu bar 1
click pop up button 1 of sheet 1 of window 1
get name of menu item 10 of menu 1 of pop up button 1 of sheet 1 of window 1
end tell
Résultat : "01 02 03…"
je connaissais get entire contents qui ne m'avait pas permis de trouver,
mais pas get name ;-(
Bonne journée.
--
Gérard FLEUROT
1 2 3