无法使用 Applescript 调整大小 window
Unable to resize window using Applescript
我使用脚本编辑器编辑了以下 Applescript,试图调整我的 RStudio window 的大小,但没有成功。 RStudio 已加载,但未正确调整大小。代码和错误消息附在下面。有任何想法吗?我使用的是 macOS Big Sur 11.0.1 和 RStudio 1.3.1073。谢谢!
tell application "RStudio"
activate
set the bounds of the first window to {140, 0, 1160, 775}
end tell
为了设置一个window的position和size在 RStudio 中,您需要使用 System Events 和 properties
的 value position
和 size
的 window.
示例 AppleScript 代码:
tell application "System Events" to ¬
get properties of window 1 of application process "RStudio"
Returns,例如:
{minimum value:missing value, orientation:missing value,
position:{140, 25}, class:window, accessibility description:missing value,
role description:"standard window", focused:true, title:"RStudio",
size:{1020, 750}, help:missing value, entire contents:{},
enabled:missing value, maximum value:missing value, role:"AXWindow",
value:missing value, subrole:"AXStandardWindow", selected:missing value,
name:"RStudio", description:"standard window"}
如你所见,没有bounds
属性,所以会使用position
和size
,例如:
tell application "System Events"
tell application process "RStudio"
tell window 1
set position to {140, 25}
set size to {1020, 750}
end tell
end tell
end tell
备注:
bounds
属性的list
项,例如{140, 0, 1160, 775}
不等于 {position, size}
而前两个 list
项目 确实等于 position
和 140, 0
实际上需要140, 25
因为在 macOS Big Sur 中 菜单栏 的默认 height
是 24 像素,因此 25
从顶部或屏幕到顶部的距离window.
在您的 OP 中使用 bounds
属性 的调整后 值,{140, 25, 1160, 775}
,以下是数字代表的含义:
- 列表项 1:{140, 25, 1160, 775} -- 140 是距左侧的距离(以像素为单位) window.
左侧的屏幕
- 列表项 2:{140, 25, 1160, 775} -- 25 是距顶部的像素距离屏幕顶部 window.
- 列表项 3:{140, 25, 1160, 775} -- 1160 是距左侧的距离(以像素为单位) window.
右侧的屏幕
- 列表项 4: {140, 25, 1160, 775} -- 775 是距顶部的像素距离屏幕底部 window.
因此,虽然 140, 25
代表 position
,但 1160, 775
不是 size
。 size
基于调整后的 bounds
是 {1020, 750}
并且是通过从 中减去 item 1
的 值 得出的item 3
的 ]value 并从 [=41] 的 value 中减去 item 2
的 value =].
我使用脚本编辑器编辑了以下 Applescript,试图调整我的 RStudio window 的大小,但没有成功。 RStudio 已加载,但未正确调整大小。代码和错误消息附在下面。有任何想法吗?我使用的是 macOS Big Sur 11.0.1 和 RStudio 1.3.1073。谢谢!
tell application "RStudio"
activate
set the bounds of the first window to {140, 0, 1160, 775}
end tell
为了设置一个window的position和size在 RStudio 中,您需要使用 System Events 和 properties
的 value position
和 size
的 window.
示例 AppleScript 代码:
tell application "System Events" to ¬
get properties of window 1 of application process "RStudio"
Returns,例如:
{minimum value:missing value, orientation:missing value,
position:{140, 25}, class:window, accessibility description:missing value,
role description:"standard window", focused:true, title:"RStudio",
size:{1020, 750}, help:missing value, entire contents:{},
enabled:missing value, maximum value:missing value, role:"AXWindow",
value:missing value, subrole:"AXStandardWindow", selected:missing value,
name:"RStudio", description:"standard window"}
如你所见,没有bounds
属性,所以会使用position
和size
,例如:
tell application "System Events"
tell application process "RStudio"
tell window 1
set position to {140, 25}
set size to {1020, 750}
end tell
end tell
end tell
备注:
bounds
属性的list
项,例如{140, 0, 1160, 775}
不等于{position, size}
而前两个list
项目 确实等于position
和140, 0
实际上需要140, 25
因为在 macOS Big Sur 中 菜单栏 的默认height
是 24 像素,因此25
从顶部或屏幕到顶部的距离window.
在您的 OP 中使用 bounds
属性 的调整后 值,{140, 25, 1160, 775}
,以下是数字代表的含义:
- 列表项 1:{140, 25, 1160, 775} -- 140 是距左侧的距离(以像素为单位) window. 左侧的屏幕
- 列表项 2:{140, 25, 1160, 775} -- 25 是距顶部的像素距离屏幕顶部 window.
- 列表项 3:{140, 25, 1160, 775} -- 1160 是距左侧的距离(以像素为单位) window. 右侧的屏幕
- 列表项 4: {140, 25, 1160, 775} -- 775 是距顶部的像素距离屏幕底部 window.
因此,虽然 140, 25
代表 position
,但 1160, 775
不是 size
。 size
基于调整后的 bounds
是 {1020, 750}
并且是通过从 中减去 item 1
的 值 得出的item 3
的 ]value 并从 [=41] 的 value 中减去 item 2
的 value =].