在Mac OS X上将屏幕外窗口移回屏幕


301

似乎Mac OS X 10.6.1 Snow Leopard有时会使一些窗口不显示在屏幕上,特别是当我从MacBook断开外接显示器的连接时。当无法抓住标题栏并将其拖回到屏幕上时,如何将窗口移回屏幕?

XvsXP.com建议向下调整屏幕分辨率,以使屏幕外窗口“重新显示”,然后将屏幕分辨率调整回其原始设置。在OS X 10.4 Tiger中,我有一个脚本可以将所有不在屏幕上的窗口重新显示在屏幕上,但是在升级到Leopard和现在的Snow Leopard时,我似乎没有该脚本。

有更好的解决方案吗?


您可能想检查一个非常类似的问题:取消外接显示器的连接后,重置Mac OS X Windows位置
Chealion

我发现从Interface Builder的plist中删除有问题的参考项有时会有所帮助。我什至试图通过AppleScript设置窗口的位置,但是没有运气。

通过将生成的显示移到相邻显示的另一侧,我能够恢复x11窗口。换句话说,我的显示器[2] [1]具有以下安排,并且x11窗口在[1]的左侧出现在屏幕外。通过重新排列:[1] [2],我的x11窗口正确显示在窗口[1]上。我在OS X 10.10上。
HAL 9001

Answers:


307

此方法似乎可行:单击“窗口”菜单,然后单击“缩放”


8
几个月来,我第一次遇到Parallels这个问题。不幸的是,它们在“窗口”菜单下没有缩放菜单选项。
马修·兰金

下一个答案应适用于所有应用程序。
詹姆斯·罗宾逊

6
缩放对我不起作用。现在,窗口变大了,但仍然无法到达。
bugloaf 2014年

19
很棒的解决方案,除了Photoshop拥有自己的“窗口”菜单的非标准实现,并且没有缩放选项。血腥的Adobe。
罗里·麦克罗森

适用于iTunes。以前从未见过这种选择;我一直以为它会被称为“最大化”。爵士乐!
Matt Fletcher 2014年

121

还没有读完整个线程,但是我发现最简单的方法是更改屏幕分辨率

转到系统偏好设置»显示,然后更改分辨率。

这将迫使您的计算机再次渲染显示并重新定位所有打开的窗口。然后只需将其切换回原始分辨率设置,一切都应恢复到原位。


4
在我的情况下,该应用程序(xScope)没有“缩放”选项,并且我的新Mountain Lion版本没有显示“检测显示”功能,因此,此技巧非常有效。谢谢!
2012年

+1也为我工作。(在Lion上尝试获取“ iPhone模拟器”窗口)。此应用已禁用缩放功能。使此操作更容易的是在菜单栏中具有“显示”按钮(“系统偏好设置”->“显示”->“在菜单栏中显示显示”)-这样,您可以快速更改分辨率或检测显示
Rhubarb

还可以与Virtual Box一起使用,Virtual Box在另一个(不存在)显示中全屏显示。我根本没有菜单栏。谢谢。
mwilson

没为我工作。我调整了显示器的大小,但窗口仍然无法够到。我可以在“任务控制”中看到它,但无法触摸它,真是太疯狂了!
bugloaf 2014年

3
旋转90度并还原对我有用。
mjhm 2014年

45

三个想法:

  • CmdF1(或者CmdfnF1如果您已将MacBook的键盘配置为使用常规功能键)则可以在镜像模式和扩展桌面之间切换显示。副作用是窗口会以某种不可预测的方式移动。这可能会将丢失的窗口移到可见的位置。但是,这可能需要连接外部监视器。

  • 打开“空间”,按热键以显示空间概述,并查看您是否缺少窗口轮廓。如果是这样,请将其拖到您想要的位置。

  • 退出该应用程序,然后重新启动。绝对是非理想的解决方案,如果还有未保存的工作,则不可行。


在镜像模式和扩展桌面之间切换无效。我决定退出Parallels,在退出之前会弹出一个对话框。打开对话框后,我将Parallels窗口移回了屏幕,然后从“确定要退出吗?”中选择“取消”。对话框。仍然希望有更好的方法。
马修·兰金

您的第一选择对我有用。我有一台附有两个显示器的Macbook Pro。我不使用Macbook作为屏幕。Cmd F1就像一个魅力。谢谢您
ntgCleaner 2014年

4
Cmd-F1可以切换到“屏幕镜像”,就像是一种魅力。然后Cmd-F1返回我的正常模式。
Bryan Focht

Cmd + fn + F1完美运行!太感谢了!
theMarceloR

37

某些窗口可以移动,例如,从底部边缘水平拖动它们。

您也可以尝试在AppleScript编辑器中运行如下脚本:

tell application "iTunes"
    set bounds of windows to {100, 100, 800, 800}
end tell
tell application "System Events" to tell window 1 of process "UltraEdit"
    set position to {100, 100}
    set size to {800, 800}
end tell

这不适用于例如UltaEdit-存在错误消息,提示无法设置范围。而且语法似乎是“将第一个窗口的边界设置为...”
Wolfgang Fahl,2013年

1
@WolfgangFahl set bounds of windows to也是正确的语法,但是我编辑了答案,添加了另一个适用于UltraEdit的脚本。
Lri

当其他所有操作失败时,此操作适用于X-Lite。X-Lite中没有“缩放”功能,并且由于X-LIte完全在另一台显示器上,因此无法更改显示比例。
David W.

谢谢!第二个脚本(但不是第一个)对我来说适用于FileZilla。运行脚本时,请确保您与相关应用程序位于同一桌面上。
汤姆(Tom)

非常好,也可以在VLC上工作,以前习惯在现在断开连接的外部监视器上使用它时,它习惯于在屏幕外卡住。
Benji XVI

37

如果您可以看到窗口的一部分,请按住Option键,然后单击窗口的边框之一。这将允许您将窗口拖动到完整视图。


1
很久以前,我对另一个答案投了赞成票,但现在在不同的操作系统上,这对我有用。这就像在Adobe程序中按住alt并拖动新形状一样!
ntgCleaner 2015年

对于许多X11应用程序而言,这一直完美无缺,这些X11应用程序坚持在桌面的可见空间之外打开。我通常只看到这些窗口中的一小部分,上面的技巧已使我能够将它们拖回视图中。
slm 2015年

我必须按住Shift-Option才能起作用...但是...非常疯狂,谢谢!
GreenAsJade 2015年

Option或Shift-Option在FileZilla的优胜美地都不适合我:|
DemiSheep

谢谢!这也使我可以在关闭屏幕时调整photoshop的大小。似乎是在所有应用程序窗口上都有效的唯一答案!
dval,2016年

21

以上都不对我有用,但是我通过更改来解决了一个问题:

  • 系统偏好设定
  • 硬件
  • 展示架

然后转到“安排”“标签”并将外部窗口拖动到内部窗口的顶部(而不是并排放置)。


与其他所有建议不同,这对我有用。但是,这不是理想的解决方案。...如果可能,我希望能够保持当前的安排。
nukeguy 2015年

1
没有其他办法对我有用-令人着迷的是,这为什么会带回MacOS上的一个inkscape窗口,而没有键盘选项也无济于事。
Wolfgang Fahl

9

如果菜单中的“窗口/缩放”选项无济于事(如第一个答案中所述):

OSX上的窗口/缩放

(当应用程序具有自己的非标准实现的Window菜单(如Adobe Photoshop)时,可能会发生这种情况),

您必须转到“显示设置”,然后选择“更多空间”(缩放比例)选项。

看到:

显示-缩放-更多空间

如果您想使用永久解决方案,请安装BetterTouchTool,它提供了一些其他选项(手势)来移动窗口。例如:

BetterTouchTool-移动窗口


1
我在显示器上的分辨率已经达到极限,但是从“最佳”设置为“更多空间”,然后再将其设置回默认值,则Filezilla窗口最终在Macbook Pro屏幕上显示为全屏
DemiSheep

1
缩放+选项-拖动-窗口边缘对我有用。
Jorge Orpinel,2015年

8

我在OS X Lion中使用Parallels Desktop 6遇到了这个问题,其中VM的实际窗口隐藏在屏幕外,并且只有在Mission Control中以及在空间之间滑动时才可见。

因此,对于那些同样的问题,希望适用于其他地方:解决方案是右键单击Dock中的应用程序图标,然后转到“选项”菜单项,然后在“分配给”下选择“此桌面”。 。这会将应用程序窗口移回当前桌面。还是更喜欢用旧的空格来完成这种事情-快得多。

希望能帮助那些绊倒这篇文章的人,同时遇到Parallels的问题(就像我一样)

请注意,在Lion上,此位置没有“分配给”选项。


这个答案对我有用,并且是唯一一个看起来不算什么骇客的答案。
durron597 '16

8

通过单击左上角的图标,找到了一种使用“强制退出...”的方法。

使用它强制退出应用程序,然后重新启动。它重新开始,并且窗口显示在屏幕上。


这个Moom的建议救了我。
AndyBean 2014年

在Filezilla中不适用于我-我什至安装了更新版本,也没有重置窗口(未卸载旧版本)
DemiSheep 2015年

我可以确认这适用于El Capitan上的Inkscape
Wray Bowling

被低估的解决方案IMO
w3debugger

7

如果仍连接了外部显示器,或者正在重新连接外部显示器,并且此时该窗口不在屏幕上且无法管理,则可以在扩展坞中右键单击该应用程序的图标,然后强制窗口捕捉到另一个显示。

这样您就可以调整窗口位置,而无需修改显示器的分辨率或打开系统偏好设置标签。仍然不像MS Windows解决方案那么容易,但是绝对比经历所有其他麻烦事要容易。


优胜美地上没有其他选择
Chuck van der Linden

这对我与High Sierra上的Sequel Pro应用程序很有效。它不在屏幕上,我看不到它的菜单栏。选择显示1并成功。谢谢!
Najki

5

以上方法均不适用于OSX 10.7.4。我正在尝试访问KeePassX,它完全不在屏幕上。(我已经将它移到家里的第二个显示器上,但是现在在办公室,没有第二个显示器。)

来回更改分辨率无效。关闭应用程序并再次打开它没有任何效果。

但是,当我关闭数据库并要求打开一个新数据库,它移动了窗口,因此我可以访问下拉菜单以选择一个文件。(好极了!)


4

按住option+两次单击扩展坞中的应用程序图标,它将首先最小化,然后将窗口还原为桌面上的完整视图。


这似乎在macOS 10.14 Mojave中不起作用。
jasonology

在Mojave v10.14.6中,它仍然对我有用。
贾斯汀

3

视图的位置保存在nib文件本身中。我解决此问题的方法是对View进行更改,然后保存。关闭Interface Builder并重新启动。我的窗口和视图聚集到了主屏幕。我必须说,在执行此操作之前,我尝试了所有选项。那就是Zoom,从Library / Preferences,F8,Gather Windows中删除了.plist……这些都不起作用。我希望这有帮助。


3

上面我对一个名为SecurID的令牌应用程序进行了几乎所有的尝试,这些应用程序用于VPN访问工作。这个AppleScript终于解决了它(由http://www.leonamarant.com/2008/04/02/how-to-get-off-screen-windows-back-on-your-mac-os-x-v105/提供

-- Example list of processes to ignore: {"xGestures"} or {"xGestures", "OtherApp", ...}
property processesToIgnore : {}

-- Get the size of the Display(s), only useful if there is one display
-- otherwise it will grab the total size of both displays
tell application "Finder"
    set _b to bounds of window of desktop
    set screen_width to item 3 of _b
    set screen_height to item 4 of _b
end tell

tell application "System Events"
    set allProcesses to application processes
    set _results to ""
    repeat with i from 1 to count allProcesses
        set doIt to 1
        repeat with z from 1 to count processesToIgnore
            if process i = process (item z of processesToIgnore) then
            set doIt to 0
            end if
        end repeat

        if doIt = 1 then
            tell process i
                repeat with x from 1 to (count windows)
                    set winPos to position of window x
                    set _x to item 1 of winPos
                    set _y to item 2 of winPos

                    if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
                        set position of window x to {0, 22}
                    end if
                end repeat
            end tell
        end if
    end repeat
end tell

愚蠢的小secureID应用程序也遇到了同样的问题。这个帖子救了我,谢谢!
杰克·霍尔

2

转到系统偏好设置»显示»检测显示。

这将迫使系统重新扫描,并检测到缺少的监视器。通常,当我遇到它时,就可以解决该问题。

另外,如果这不起作用,并且您的系统仍然认为显示器已连接,请尝试以下两种方法:

  1. 如果电缆仍然连接(但未连接到显示器),请断开连接。
  2. 在显示面板的排列选项卡上,尝试“收集Windows”。那应该将所有窗口收集到活动/主监视器。

我尝试使用“检测显示”,但是没有用。我没有尝试使用“收集Windows”选项,但是下次会使用。
马修·兰金

这可能会或可能不会。我发现Wireshark(X Windows应用程序)在连接第二个显示器时将不在显示器上。这实际上是XQuartz错误(已确认)。目前尚不清楚这是Apple漏洞还是XQuartz漏洞。参见xquartz.macosforge.org/trac/ticket/797
本杰明·肖尔尼克2014年

2

对于我来说,简单的答案是,如果您只是要完全拆下外接显示器(例如,用笔记本电脑去开会),则只需要合上盖子并重新打开即可。所有其他答案(^ 1,缩放,移动窗口)对我都不起作用。


1

WindowZoom方法很有趣,如果不是Moom,可能会用到什么。它使您可以设置用于重新定位窗口和调整窗口大小的热键。我有一个9单元格(altoption1-9)以及左/右半部分和其他一些。

该MOOM默认centerring和扩大一个窗口controlshiftz,然后space-我改变了这altz。对屏幕广播也非常有用,因为您可以更好地控制窗口的位置。


0

在极端情况下,例如我遇到Interface Builder时,您可以尝试重新连接第二台显示器,找到丢失的窗口,然后将其拖回主显示器。

现在,要检查您的工作,请退出程序,然后重新启动它,以确保所有所需的窗口都位于主显示屏上。

现在,断开第二台显示器的连接-一切正常。


0

在我的情况下,拔下其中一台外接显示器后,Mavericks上的窗口消失了。MacBook Pro上仍然插入了另一台外部显示器,而从未插入的外部移动的窗口已移至我的内置显示器。Chrome的一个窗口位于实际显示之外,但是在Mavericks中,屏幕和“空格”的工作方式没有在其他显示器上显示。

我发现最简单的方法是打开Exposé(如果您重新启用了该键盘快捷键,则可以按F9,或者根据配置使用三或四根手指向上滑动),然后将丢失的窗口从一台监视器拖到另一台。这将导致OS X自动将窗口放置在新监视器的范围内,并且它将再次可见。


0

我想知道为什么以前没有提到它,但是有一个非常简单的方法来解决它。

您可以抓住窗口的水平或垂直边缘之一(而不是拐角),并使鼠标平行于边缘,而不是通常按照调整窗口大小的方向移动。

也就是说,如果您水平移动窗口的水平边缘或垂直移动垂直边缘,则它不会调整窗口大小,而是会移动整个窗口。现在,您可以将窗口的缺失部分拖回到屏幕上。


0

第三方解决方案是使用HyperDock。它当前与macOS 10.14 Mojave兼容。

此实用程序修改了Dock,以显示浮动在应用程序图标上方的每个应用程序窗口的预览。

这些是可拖动的,因此您只需选择要查看的窗口并将其拖动到需要打开的监视器即可。

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.