在OS X中使用AppleScript设置窗口边界被忽略了

5

我正在尝试创建一个小的AppleScript来创建和移动一些终端窗口在我的屏幕上。我遇到的问题是,在某些情况下,似乎OS X忽略了我设置的边界。

使用AppleScript编辑器:

tell application "Terminal" to set the bounds of the first window to {0, 50, 600, 700}
tell application "Terminal" to get the bounds of the first window

在事件日志中显示以下内容:

tell application "Terminal"
    activate
    set bounds of window 1 to {0, 50, 600, 700}
    get bounds of window 1
        --> {0, 22, 600, 672}
end tell
Result:
{0, 22, 600, 672}

通过视觉检查脚本运行时创建的窗口,可以发现结果界限是窗口使用的界限。

有任何想法吗?

编辑:运行10.6.3。我的屏幕尺寸为1280 X 800。Finder报告桌面窗口的边界为{0, 0, 1280, 800}。


我可以问一下你为什么要这样做吗?如果你只是想将终端平铺,已经有一个免费的脚本可以使用了。 - mcgrailm
这基本上就是我正在做的事情...不过,我还添加了一些额外的自定义功能,比如打开几个选项卡并在每个选项卡中启动命令。现在我看到了这种行为,我正在努力弄清楚为什么会发生这种情况。 - Jesse Vogt
3个回答

7
有时候,当告诉应用程序设置边界不起作用时,可以通过告诉系统事件更改位置和大小属性来实现:
tell application "System Events" to tell process "Live"
    set position of window 1 to {0, 50}
    set size of window 1 to {600, 650}
end tell

这对我在终端上有所帮助,因为它在正常边界设置时表现不佳。到目前为止,我测试过的所有其他应用程序中,它也能可靠地工作。 - Chris Redford

4

今天我遇到了同样的问题。不确定真正的原因是什么,但解决方法是在设置边界后添加一个额外的“设置位置”:

# from my window tiling script:
set the bounds of the first window to {0, 22, (screenWidth / 2), screenHeight}
set position of the first window to {0, 22}

0

我也遇到了同样的问题。自从更新到Mavericks之后,我无法将窗口宽度设置为大于默认值。上述解决方法不起作用,但是通过分别设置位置和大小来解决:

先设置位置为...至{...,..},然后再设置大小为..至{..,..}

这样就可以解决问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接