Переместить закадровое окно обратно на экран в Mac OS X


287

Кажется, что Mac OS X 10.6.1 Snow Leopard имеет тенденцию время от времени оставлять некоторые окна вне экрана, особенно когда я отключаю внешний монитор от моего MacBook. Как я могу вернуть окно обратно на экран, если невозможно захватить строку заголовка и перетащить ее обратно на экран?

XvsXP.com рекомендует отрегулировать разрешение экрана в сторону понижения, чтобы неэкранные окна «возвращались в исходное состояние», а затем отрегулировать разрешение экрана до первоначального значения. В OS X 10.4 Tiger у меня был скрипт, который возвращал все неэкранные окна обратно на экран, но в моих обновлениях до Leopard и теперь Snow Leopard у меня, похоже, нет этого скрипта.

Есть ли лучшие решения там?



Я обнаружил, что удаление ошибочных ссылочных элементов из списков Interface Builder иногда помогает. Я даже попытался установить положение окна через AppleScript без удачи.

Я смог восстановить окно x11, переместив нерестовый дисплей на другую сторону соседнего дисплея. Другими словами, у меня была следующая договоренность с моими мониторами [2] [1], и окно x11 появлялось за кадром слева от [1]. Переставив: [1] [2], мое окно x11 правильно появилось в окне [1]. Я на OS X 10.10.
HAL 9001

Ответы:


298

Кажется, этот метод работает: щелкните меню «Окно», затем нажмите «Масштаб»


8
Впервые за несколько месяцев я столкнулся с этой проблемой в Parallels. К сожалению, они не имеют опции меню масштабирования в меню «Окно».
Matthew Rankin

Следующий ответ должен работать для всех приложений.
James Robinson

6
Увеличение не работает для меня. Теперь окно стало больше, но все еще не там, где я могу его достать.
bugloaf

18
Отличное решение, за исключением того, что Photoshop имеет собственную нестандартную реализацию меню Window и не имеет опции масштабирования. Кровавый Adobe.
Rory McCrossan

Работал на iTunes. Никогда не видел этот вариант раньше; Я всегда предполагал, что это будет называться «максимизировать». Jazzy!
Matt Fletcher

116

Не прочитал всю ветку, но самый простой способ, который я нашел, был изменить разрешение экрана :

Перейдите в «Системные настройки» »Дисплеи, а затем измените разрешение.

Это заставит ваш компьютер снова отобразить дисплей и переместить все открытые окна. Затем просто переключите его обратно в исходные настройки разрешения, и все должно быть на месте.


3
В моем случае приложение (xScope) не имело опцию Zoom, и моя новая сборка Mountain Lion не показывала функцию «обнаружения дисплеев», поэтому этот совет работал отлично. Спасибо!
Jon

+1 тоже сработало (На Льве пытается открыть окно симулятора iPhone). Масштаб был отключен для этого приложения. Что делает это проще, так это наличие кнопки «Дисплеи» в строке меню («Системные настройки» -> «Дисплеи» -> «Показать дисплеи в строке меню») - так вы можете быстро изменить разрешение или обнаружить дисплеи.
Rhubarb

Также работал с виртуальной коробкой, которая была полноэкранной на другом (несуществующем) дисплее. У меня вообще не было строки меню. Благодарю.
mwilson

Не работал для меня Я изменил размер дисплея, но окно все еще находится вне досягаемости. Я вижу это в Управлении полетами, но я не могу прикоснуться к нему, так безумно!
bugloaf

3
Поворот на 90 градусов и возврат работали на меня.
mjhm

44

Три идеи:

  • Cmd F1 (или же Cmd сноска F1 если вы настроили клавиатуру MacBook для использования обычных функциональных клавиш), вы переключаете дисплеи с режима зеркала на расширенный рабочий стол. Побочным эффектом является непредсказуемое перемещение окон. Это может переместить отсутствующее окно куда-нибудь видимое. Это, вероятно, требует подключения внешнего монитора.

  • Включите пробелы, нажмите горячую клавишу, чтобы отобразить обзор пробелов и посмотреть, виден ли там отсутствующий контур окна. Если это так, перетащите его туда, где вы хотите.

  • Закройте приложение и перезапустите. Определенно неидеальное решение и непрактичное, если есть несохраненная работа.


Переключение между зеркальным режимом и расширенным рабочим столом не работает. Я решил выйти из Parallels, в результате чего перед выходом появилось диалоговое окно. Открыв диалоговое окно, я переместил окно Parallels обратно на экран и затем выбрал «Отмена» из «Вы уверены, что хотите выйти?» диалоговое окно. Все еще хотелось бы, чтобы был лучший способ.
Matthew Rankin

Ваш первый вариант сработал для меня. У меня есть MacBook Pro с двумя мониторами. Я не использую MacBook в качестве экрана. Cmd F1 работал как шарм. Спасибо
ntgCleaner

4
Cmd-F1 для переключения в Screen Mirror работал как шарм. И тогда 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

1
@WolfgangFahl set bounds of windows to также правильный синтаксис, но я отредактировал ответ, добавив второй скрипт, который работал для меня с UltraEdit.
Lri

Это работало для X-Lite, когда все остальное терпело неудачу. В X-Lite не было «Zoom», и изменение масштаба дисплея не работало, поскольку X-LIte был полностью на другом дисплее.
David W.

Спасибо! Второй скрипт (но не первый) у меня работал на FileZilla. При запуске сценария убедитесь, что вы находитесь на том же рабочем столе, что и рассматриваемое приложение.
Tom

Отлично, работает и на VLC, который имеет привычку застрять вне экрана, когда он ранее использовался на отключенном внешнем мониторе.
Benji XVI

33

Если вы видите часть окна, удерживайте нажатой клавишу «Option» и затем нажмите на одну из границ окна. Это позволит вам перетащить окно в полный вид.


1
Я давно проголосовал за другой ответ, но теперь на другой ОС, у меня это сработало. Это как удерживать Alt и перетаскивать новую фигуру в Adobe программах!
ntgCleaner

Это работает безупречно для меня с рядом приложений X11, которые настаивают на том, чтобы открываться за пределами видимого пространства моего рабочего стола. Обычно я вижу только некоторые из этих окон, и приведенный выше совет помог мне перетащить их обратно в поле зрения.
slm

Мне пришлось держать Shift-Option, чтобы это работало ... но ... фанатично, спасибо!
GreenAsJade

Ни Option, ни Shift-Option не работают для меня в Yosemite с FileZilla: |
DemiSheep

Спасибо! Это также позволяет мне изменять размер фотошопа, когда он выключен. Похоже, единственный ответ, который работает на всех окнах приложения!
dval

20

Ничто из вышеперечисленного не помогло мне, но мне удалось исправить, изменив:

  • Системные настройки
  • аппаратные средства
  • Отображает

Затем перейдите на вкладку «Расположение» и перетащите внешнее окно поверх внутреннего (вместо соседнего).


Это работает для меня, в отличие от всех других предложений. Тем не менее, это не идеальное решение ... Я бы хотел сохранить свою текущую договоренность, если это возможно.
nukeguy

1
Ничто другое не сработало для меня - это удивительно, почему это возвращает окно inkscape в MacOS, в то время как никакая опция клавиатуры ничего не поможет.
Wolfgang Fahl

8

У меня была эта проблема с Parallels Desktop 6 в OS X Lion, из-за которой фактическое окно виртуальной машины было скрыто за экраном и было видно только в управлении полетом и при переходе между пробелами.

Так что для тех, у кого такая же проблема, и, надеюсь, это применимо в других местах: решение состоит в том, чтобы щелкнуть правой кнопкой мыши значок приложения в Dock, затем перейти к пункту меню «Параметры» и в разделе «Назначить» выбрать «Этот рабочий стол». , Это должно переместить окно приложения обратно на текущий рабочий стол. Тем не менее, для таких вещей предпочтительнее старая панель пробелов - намного быстрее.

Надеюсь, что это поможет тем, кто наткнулся на этот пост, с той же проблемой с Parallels (как и я)

Обратите внимание, что в Lion в этой позиции нет опции Assign To.


Этот ответ сработал для меня, и это единственный, который не похоже на огромный взлом.
durron597

8

Если опция Window / Zoom из меню не поможет (как предложено в первом ответе):

Window/Zoom on OSX

(это может произойти, когда приложение имеет собственную нестандартную реализацию меню «Окно», например, Adobe Photoshop),

Вы должны перейти к настройкам дисплеев и выбрать опцию «Больше места» (в масштабе).

Увидеть:

Displays - Scaled - More Space

Если вы хотите иметь какое-то постоянное решение, пожалуйста, установите BetterTouchTool , который предоставляет дополнительные параметры (жесты) для перемещения окон. В примере:

BetterTouchTool - Move windows


1
Мое разрешение на моих мониторах уже было превышено, но при установке значения «Лучшее» на «Больше места», а затем возвращении его к значению по умолчанию окно Filezilla стало полноэкранным на моем экране Macbook Pro.
DemiSheep

1
Масштабирование + option-drag-window-edge у меня сработало.
Jorge Orpinel

7

Я нашел способ, используя «Force Quit ...», нажав значок  в левом верхнем углу.

Используйте его, чтобы принудительно выйти из приложения, а затем запустите его снова. Он начинается заново, и окно на экране.


Это предложение Moom спасло меня.
AndyBean

У меня не работало с Filezilla - я даже установил обновленную версию, и она не сбросила окно (не удалила старую версию)
DemiSheep

Я могу подтвердить, что это работало для Inkscape на El Capitan
Wray Bowling

6

Если у вас по-прежнему подключен внешний дисплей или вы подключаете внешний дисплей, и в этот момент окно находится за пределами экрана и неуправляемо, можно щелкнуть правой кнопкой мыши значок этого приложения в док-станции и принудительно привязать окно к другой дисплей.

Это позволит вам настроить положение окна без необходимости изменять разрешение дисплеев или открывать вкладку системных настроек. Все еще не так просто, как решение для MS Windows, но определенно проще, чем проходить через все остальное.


нет вариантов для этого на Йосемити
Chuck van der Linden

Это работало для меня с приложением Sequel Pro на High Sierra. Это было за кадром, и я не мог видеть его строку меню. Выбрал Дисплей 1 и все заработало. Спасибо!
Najki

5

Ни один из вышеперечисленных методов не работал для меня на OSX 10.7.4. Я пытался получить доступ к KeePassX, который был полностью за кадром. (Я перенес его на второй дисплей дома, но теперь был в офисе, без второго дисплея.)

Изменение разрешения назад и вперед не имело никакого эффекта. Закрытие приложения и его повторное открытие не дали никакого эффекта.

Однако когда Я закрыл базу данных и попросил открыть новую, она переместила окно, чтобы я мог получить доступ к раскрывающемуся списку, чтобы выбрать файл , (ура!)


4

Держать вариант + дважды щелкните значок приложения в доке, и он сначала свернется, а затем вернет окна в полноэкранный режим на рабочем столе.


3

Положение видов сохраняется в самих файлах пера. Способ, которым я это исправил, состоял в том, чтобы внести изменения в представление и затем сохранить его. Завершите работу Interface Builder и запустите его снова. Мое окно и вид, где собрались обратно на главный экран. Я должен сказать, что я попробовал все варианты, прежде чем сделать это. Это Zoom, удаляющий .plist из Library / Preferences, F8, Gather Windows ... Ничего из этого не сработало. Надеюсь, это поможет.


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. Этот пост спас меня, спасибо!
Jake Hall

2

Перейдите в Системные настройки »Дисплеи» Определить дисплеи.

Это заставит систему выполнить повторное сканирование и обнаружить отсутствующий монитор ... Это обычно решает проблему, когда я сталкиваюсь с ним.

Кроме того, если это не работает, и ваша система все еще считает, что монитор подключен, попробуйте две вещи:

  1. Если кабель все еще подключен (но не подключен к монитору), отсоедините его.
  2. На вкладке «Расположение» на панели дисплеев попробуйте «Собрать Windows». Это должно собрать все окна для активного / основного монитора.

Я попытался использовать дисплеи, но это не сработало. Я не пробовал вариант «Собрать Windows», но сделаю это в следующий раз.
Matthew Rankin

Это может или не может работать. Я обнаружил, что Wireshark (приложение для X Windows) будет отключен от дисплея при подключении второго дисплея. На самом деле это была ошибка XQuartz (признано). Неясно, является ли это ошибкой Apple или ошибкой XQuartz. Увидеть xquartz.macosforge.org/trac/ticket/797 ,
Benjamin Schollnick

2

Простой ответ для меня, если вы просто полностью удаляете внешние мониторы (например, для посещения конференции с вашим ноутбуком), это просто закрываете крышку и снова открываете ее. Все остальные ответы (^ 1, Zoom, перемещение окон) у меня не сработали.


1

Окно Увеличить метод интересный и, вероятно, что я бы использовал если бы не Moom , Это позволяет вам устанавливать горячие клавиши для изменения положения и изменения размеров окон. У меня сетка 9 ячеек ( альт вариант 1-9 ) а также левые / правые половины и несколько других.

Луна по умолчанию для центрирования и расширения окна контроль сдвиг Z затем пространство - Я изменил это на альт Z , Супер полезно и для скринкастов, так как у вас гораздо больший контроль над расположением окон.


0

В крайних случаях, например, когда я сталкиваюсь с Interface Builder, вы можете попробовать повторно подключить второй монитор, найти пропущенное окно и затем перетащить его обратно на основной дисплей.

Теперь, чтобы проверить свою работу, выйдите из программы, а затем перезапустите ее, чтобы убедиться, что все нужные окна находятся на вашем основном дисплее.

Теперь отключите второй монитор - все должно быть в порядке.


0

В моей ситуации окно исчезло на Mavericks после того, как я отключил один из моих внешних мониторов. У меня все еще был подключен другой внешний монитор к моему MacBook Pro, в то время как окна, перенесенные из отключенного внешнего, были перенесены на мой встроенный дисплей. Одно окно для Chrome находилось далеко за пределами реального дисплея, но с учетом того, как экраны и «Spaces» работают в Mavericks, ни одна его часть не отображалась на других дисплеях.

Самый простой способ, который я нашел, - открыть Exposé (либо нажав клавишу F9, если вы снова включили это сочетание клавиш, либо проведя пальцем вверх тремя или четырьмя пальцами в зависимости от конфигурации), и перетащите отсутствующее окно с одного монитора на другой. Это заставит OS X автоматически расположить окно в границах нового монитора, и оно снова станет видимым.


0

Интересно, почему это не было упомянуто прежде, но есть очень простой способ решить это.

Вы можете захватить один из горизонтальных или вертикальных краев окна (но не углов) и двигать мышь параллельно краю, а не в том направлении, которое вы обычно делаете, чтобы изменить размер окна.

То есть, если вы переместите горизонтальный край окна по горизонтали или вертикальный край по вертикали, тогда он не изменит размер окна, а сместит его целиком. Теперь вы можете перетащить недостающую часть окна обратно на экран.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.