Ecco qua. Sono stati apportati alcuni piccoli aggiustamenti per far funzionare lo script, che vedrai quando lo leggerai.
La cosa principale da tenere a mente è prendere l'abitudine di inviare solo i comandi a un'applicazione che deve essere inviata all'applicazione. Il resto viene spesso eseguito al meglio con il blocco tell
, in modo che le terminologie non si confondano l'una con l'altra. Per esempio, in questo caso, sono abbastanza sicuro che Pages - insieme alle altre applicazioni che usano i iWork Suite dei comandi di AppleScript - hanno il loro identificatore di oggetto chiamato text item
, che è diverso da quello che stai cercando di impiegare nel tuo script.
Il problema originale, tuttavia, è stato risolto in modo simile impostando la variabile sul alias
restituito da choose file
al di fuori del blocco Pagine tell
, ma anche senza dimenticare per utilizzare quel alias
all'interno del blocco tell
per aprire effettivamente il file, utilizzando il comando open
.
set MYTESTFILE to (choose file)
tell application "Pages"
set MYTESTFILE to open MYTESTFILE
properties of MYTESTFILE
copy body text of MYTESTFILE to theText
end tell
set toFind to "Guy"
set toReplace to "Gal"
set astid to AppleScript's text item delimiters
set AppleScript's text item delimiters to toFind
set textItems to theText's text items
set AppleScript's text item delimiters to toReplace
tell textItems to set editedText to beginning & toReplace & rest
set AppleScript's text item delimiters to astid
tell application "Pages" to set body text of MYTESTFILE to editedText