Applescripting Numbers zum Speichern, Schließen und Beenden in einer App anstelle des Skripteditors

Nachdem ich mit Applescript eine neue Zeile mit Daten zu einem Numbers-Dokument hinzugefügt habe, versuche ich, das Dokument zu speichern und zu schließen und dann Numbers zu beenden. Die Verwendung des folgenden Skripts zum Speichern, Schließen und Beenden von Numbers funktioniert, wenn ich es in einem geöffneten Skripteditorfenster ausführe:

save document 1 in "/Users/name/Desktop/Workout.numbers"

close document 1 in "/Users/name/Desktop/Workout.numbers"

activate application "Numbers"
tell application "System Events" to keystroke "q" using command down
end

Es funktioniert jedoch nicht , wenn es als eigenständige Applescript-App ausgeführt wird. Es scheint beim Speichern aufzuhören.

Und als Randbemerkung funktioniert die Verwendung des Tell-Blocks unten, um Numbers zu beenden, auf die gleiche Weise; Es funktioniert, wenn es über den Skripteditor ausgeführt wird, aber nicht in einer App:

tell application "Numbers"
    quit
end tell

Warum der Unterschied zwischen der Ausführung in einem geöffneten Skript-Editor-Fenster und der Ausführung als Applescipt-App? Wie kann ich Numbers skripten, um das Schließen und Beenden in einer Applescript-App zu speichern?

Antworten (1)

Sie müssen den saveBefehl an die Numbers-App richten ...

Dies sollte für Sie funktionieren.

tell application "Numbers"
    save document 1 in POSIX file "/Users/name/Desktop/Workout.numbers"
    delay 0.1
    close document 1 
    delay 0.1
    quit
end tell

Oder wenn Sie den Code etwas hübscher machen wollen... Das sollte auch funktionieren.

set saveToFolder to path to desktop folder as text
set numbersDocName to "Workout.numbers"
set numbersDoc to (saveToFolder & numbersDocName)

tell application "Numbers"
    close document 1 saving yes saving in file numbersDoc
    delay 0.1
    quit
end tell
Ja, diese Verzögerungen sind praktisch!
Danke, das zweite funktioniert einwandfrei. Ich wusste nicht, dass Numbers die zu speichernde Datei kennen musste.