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

时间:2010-05-06 01:43:40

标签: macos applescript

我正在尝试创建一个小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}

3 个答案:

答案 0 :(得分: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}

答案 1 :(得分:4)

有时告诉应用程序设置边界不起作用,告诉系统事件更改位置和大小属性:

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

答案 2 :(得分:0)

这里的问题相同。由于更新为mavericks我无法将窗口宽度设置为大于默认值。上面的解决方法不起作用,但通过工程单独设置位置和大小:

将......的位置设置为{...,..}然后 将..的大小设置为{..,..}

作品