Die Objekthierarchie hat sich leicht geändert. Jede Registerkarte wird in AppleScript als Registerkarte 1 verwiesen, die zu einem eindeutigen übergeordneten Fenster Objekt gehört.
also vorher, wenn es drei Registerkarten in einem Fenster geöffnet waren, konnten wir sie als Tab 1, Tab 2 und Registerkarte 3 von Fenster 1 beziehen. Jetzt haben wir Tab 1 von Fenster 1, Registerkarte 1 von Fenster 2 und Registerkarte 1 von Fenster 3.
Ich habe die bequemste und zuverlässigste Weg gefunden eine bestimmte Registerkarte Ziel ist es, das Fenster Objekt zu identifizieren, die die Registerkarte Objekt mit einem bestimmten tty Eigenschaftswert enthält. Ich verwende einen Befehl, der etwa wie folgt aussieht:
tell application "Terminal"
get the id of the first window ¬
whose first tab's tty contains "003"
set w to result
close window id w
end tell
Wenn Sie ein etwas klareres Bild der Dinge zu bekommen, führen Sie dies:
tell application “Terminal” to ¬
get every tab of every window
und diese:
tell application “Terminal” to ¬
get properties of every window
und dies:
tell application “Terminal” to ¬
get properties of tab 1 of every window
Schöne investigative Arbeit! Als ich meinen jetzt gelöschten Kommentar darüber veröffentlichte, dass es möglicherweise ein Fehler ist, hatte ich noch keine Zeit, es zu untersuchen. +1 – user3439894
Danke das funktioniert! Es erscheint mir total seltsam, dass sich das ändern würde. Irgendeine Idee von der Begründung dahinter? – db579
Einverstanden - bizarr. Sie können also immer noch Syntax wie "do script" cd api "in Tab 3 des Frontfensters" schreiben, aber es funktioniert nie in High Sierra, da das Konzept von tab n nur dort existiert, wo n == 1? – StephenT