如何将当前活动的窗口发送到后面?


15

是否有快捷方式或类似的方法可以将当前活动的窗口发送到屏幕背面,同时仍保持其打开状态(以便使其最终位于所有其他打开的窗口下方)?


2
H将把当前应用程序(包括其所有窗口)发送到后面并将其隐藏起来,直到您将其返回到前面为止(从扩展坞或B-TAB键重新选择该应用程序)。在大多数应用程序中,Shift--〜会在当前应用程序的窗口之间循环,这可能与您要查找的窗口最接近。
Mic频道

我知道,这不是我想要的。

1
如果您想将其一直发送到背面,那么应该集中在哪个窗口上?先前选择的窗口?
sayzlim '16

Answers:


10

简短答案:,Apple除了提供将窗口置于最前面(索引1)之外,没有提供允许您更改应用程序窗口索引的API 。没有优雅的解决方案。但:

龙回答:是的,你可以使用的AppleScript来有效地移动窗口到后面的AppleScript的能够窗户栈通过收集窗口的列表,然后迅速移动的每一个(除了最前端)到前面,让所选择的窗口在后面。

这是一个AppleScript的示例,该示例将最前面的Finder窗口发送到后面。

tell application "Finder"
    set winList to every window whose visible is true
    if not winList = {} then
        repeat with oWin in (items 1 through -2 of reverse of winList)
            set index of oWin to 1
        end repeat
    end if
end tell

该脚本基于JMichaelTX在KeyboardMaestro论坛上讨论的解决方案

改组非常快,但是在脚本编辑器中,您可以检查其工作方式,在底部保留“ 506”,并以保留其顺序的方式弹出“ 502-505”:

get every window whose visible = true
    --> {Finder window id 506, Finder window id 505, Finder window id 504, Finder window id 503, Finder window id 502}
set index of Finder window id 502 to 1
    --> 1
set index of Finder window id 503 to 1
    --> 1
set index of Finder window id 504 to 1
    --> 1
set index of Finder window id 505 to 1
    --> 1

您可以通过以下方式将此AppleScript映射到服务或键盘快捷方式:a)将脚本放入Automator服务中的“运行AppleScript”操作中,或b)使用启动器(Alfred,Keyboard Maestro等)。有关Applescript键盘分配的详细信息,请参见:如何为我编写的AppleScript分配键盘快捷键?

这可能满足OP的需求-从原始帖子尚不清楚。该解决方案还可以扩展到多个支持AppleScript的应用程序。但是,由于在AppleScript中,非脚本化应用程序的可寻址窗口不具有动词/属性,因此我知道一种解决方案,无法使其与可脚本化窗口和不可脚本化窗口混合使用。辅助设备/辅助功能打开时,某些窗口存在“ AXRaise”操作,但这并不适用于所有窗口。存在精心设计的黑客程序,其中涉及遍历每个活动的应用程序以及显示/隐藏或最小化/还原窗口,但这是一团糟。System Eventsset index

相关讨论:


是否可以将任何应用程序的窗口而不是特定应用程序的窗口发送到后面?
Di Liu

可悲的是,自莫哈韦沙漠以来,这似乎不再起作用。
爱德华·福尔克

自Mojave以来,我的理解是,现在需要使用AppleScript控制Finder来运行(未经测试)权限。如果遇到诸如errAEEventNotPermitted之类的错误,则可以使用解决方案来添加这些权限-请参阅相关讨论:forums.developer.apple.com/thread/106949
JeremyDouglass,

2

您的问题不是很清楚,但是如果您想要的是在当前活动应用程序的所有窗口中循环显示的快捷方式,则应该可以使用Command~键盘快捷键来执行此操作。

~密钥通常位于左边的1键。

为了明确起见,Command~键盘快捷键的作用是在您当前所在应用程序的所有窗口之间循环。例如,如果您使用的是MS Word,并且打开了三个文档,它将在这三个文档之间循环。

但是,Command~键盘快捷键不会在选项卡之间循环。例如,如果您使用三个窗口打开了Safari,并且每个窗口都打开了五个选项卡,则使用此快捷方式将在三个窗口之间循环,而不是单个选项卡。

可能会实现所需功能的另一个选项是CommandM键盘快捷键。但是,这最小化了当前Dock的活动窗口,因此我怀疑这不是您想要的。

如果我完全误解了您的问题,请澄清。


我认为这是OP想要的用例:说我在邮件应用程序前面打开了邮件应用程序,并且想快速将邮件应用程序置于前台并将邮件发送到后台,我可以使用键盘快捷方式和消息应用程序将在我的邮件应用程序后面。我尝试了您的键盘快捷键,但并没有做到这一点。
owlswipe

我认为您是指`键。〜是按住Shift并按`时唯一的打印内容
Crowder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.