【问题标题】:Window bounds set on window using AppleScript in OS X are being ignored在 OS X 中使用 AppleScript 在窗口上设置的窗口边界被忽略
【发布时间】:2010-05-06 01:43:40
【问题描述】:

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

【问题讨论】:

  • 请问您为什么要这样做?如果你只是想平铺你的终端,已经有一个脚本可以免费获得
  • 这基本上就是我正在做的......但是,我还添加了一些额外的自定义,例如打开几个选项卡并在每个选项卡中启动命令。现在我看到了这种行为,我想弄清楚为什么会这样。

标签: macos applescript


【解决方案1】:

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

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】:

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

# 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}

【讨论】:

    【解决方案3】:

    同样的问题。由于更新到小牛,我无法将窗口宽度设置为大于默认值。上述解决方法不起作用,但通过作品分别设置位置和大小:

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

    作品

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-27
      • 2011-06-05
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2014-02-21
      相关资源
      最近更新 更多