如何获得具有键盘/鼠标焦点的Mac OS X应用程序的显示范围?

时间:2018-08-25 23:34:11

标签: swift macos applescript

我正在使用以下脚本在Mac上“最大化”当前应用程序窗口。

当最前面的应用程序窗口位于主/更大的外接显示器上,或者我的笔记本电脑未连接至外接显示器时,它工作正常。

但是,当我连接到外接显示器时,如果要尝试最大化的窗口位于笔记本电脑的显示器(不是外接的主显示器)上,则此脚本最终会将窗口放大到更大的显示器的尺寸。

try
    tell application "Finder" to set b to bounds of window of desktop
    try
        tell application (path to frontmost application as text)
            set bounds of window 1 to {item 1 of b, 22, item 3 of b, item 4 of b}
        end tell
    on error
        tell application "System Events" to tell window 1 of (process 1 where it is frontmost)
            try
                set position to {0, 22}
                set size to {item 3 of b, (item 4 of b) - 22}
            on error
                click (button 1 of window 1 where subrole is "AXZoomButton")
            end try
        end tell
    end try
end try

我相信问题是我获得期望的boundsb的方式:

bounds of window of desktop

这似乎总是返回主显示的边界。

我需要的是一种为当前正在运行的,具有焦点的键盘和鼠标的应用程序检测显示边界的方法。

注意:如果解决方案是在Swift中而不是在Apple Script中,我会很酷。

1 个答案:

答案 0 :(得分:0)

您考虑过吗?

tell application (path to frontmost application as text)
    set zoomed of window 1 to true
end tell