baa*_*ger 5 terminal applescript macos-high-sierra
正如标题所说,我有一个可以执行以下操作的苹果脚本:
in tab 2 of front window
Run Code Online (Sandbox Code Playgroud)
以前工作正常,但自从 High Sierra 升级返回:
Terminal got an error: Can’t get tab 2 of window 1. (-1728)
Run Code Online (Sandbox Code Playgroud)
这对应于errAENoSuchObject我找不到任何关于此更改的文档 - 这是一个错误吗?有没有新的或更好的方法来做到这一点?
对象层次结构略有变化。每个选项卡在 AppleScript 中被引用为属于唯一父窗口对象的选项卡 1。
所以,以前,如果有三个选项卡在一个窗口中打开,我们可以称它们为标签1,标签2和标签3的窗口1。现在,我们有标签1的窗口1,标签1的窗口2,和标签1的窗口3。
我发现定位特定选项卡的最方便和可靠的方法是识别包含具有特定tty属性值的选项卡对象的窗口对象。我使用一个看起来像这样的命令:
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
Run Code Online (Sandbox Code Playgroud)
如果您想对事物有更清晰的了解,请运行以下命令:
tell application “Terminal” to ¬
get every tab of every window
Run Code Online (Sandbox Code Playgroud)
和这个:
tell application “Terminal” to ¬
get properties of every window
Run Code Online (Sandbox Code Playgroud)
和这个:
tell application “Terminal” to ¬
get properties of tab 1 of every window
Run Code Online (Sandbox Code Playgroud)