Làm thế nào tôi có thể gửi cửa sổ hiện đang hoạt động trở lại?


15

Có một phím tắt hoặc như vậy để gửi cửa sổ hiện đang hoạt động đến phía sau màn hình trong khi vẫn giữ cho nó mở (để nó kết thúc "bên dưới" tất cả các cửa sổ đang mở khác)?


2
H sẽ gửi ứng dụng hiện tại (bao gồm tất cả các cửa sổ của nó) ra phía sau và ẩn nó cho đến khi bạn đưa nó trở lại mặt trước (từ dock hoặc bằng-TAB để chọn lại ứng dụng). Trong hầu hết các ứng dụng, Shift-- ~ sẽ quay vòng qua các cửa sổ của ứng dụng hiện tại, có lẽ là gần nhất với những gì bạn đang tìm kiếm.
Kênh Mic

Tôi biết về nó, nó không phải là những gì tôi muốn.

1
Nếu bạn muốn gửi nó về phía sau, cửa sổ nào nên tập trung? Cửa sổ được chọn trước đó?
sayzlim

Câu trả lời:


10

Câu trả lời ngắn: Không , Apple không cung cấp API cho phép bạn thay đổi chỉ mục cửa sổ ứng dụng trừ khi đưa cửa sổ ra phía trước (chỉ mục 1). Không có giải pháp thanh lịch . Nhưng:

Câu trả lời dài: , Bạn có thể sử dụng AppleScript để di chuyển cửa sổ một cách hiệu quả vào phía sau một chồng các cửa sổ có khả năng AppleScript bằng cách thu thập danh sách các cửa sổ, sau đó nhanh chóng di chuyển từng cửa sổ ( ngoại trừ mặt trước) ra phía trước, rời khỏi cửa sổ đã chọn ở phía sau.

Dưới đây là một ví dụ về một AppleScript gửi Cửa sổ Finder phía trước ra phía sau.

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

Kịch bản này dựa trên một giải pháp của JMichaelTX đã thảo luận trên diễn đàn KeyboardMaestro.

Việc chia sẻ lại rất nhanh, nhưng trong Trình chỉnh sửa tập lệnh, bạn có thể kiểm tra cách thức hoạt động của nó, để lại "506" ở phía dưới và bật "502-505" theo cách bảo vệ trật tự của chúng:

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

Bạn có thể ánh xạ AppleScript này tới một phím tắt dịch vụ hoặc bàn phím, bằng cách a) đưa tập lệnh vào hành động Run AppleScript bên trong dịch vụ Automator hoặc b) bằng trình khởi chạy (Alfred, Bàn phím Maestro, v.v.). Để biết chi tiết về gán bàn phím Applescript, hãy xem: Làm cách nào để gán phím tắt cho AppleScript tôi đã viết?

Điều này có thể đáp ứng nhu cầu của OP - không rõ ràng từ bài viết gốc. Giải pháp này cũng có thể được mở rộng cho nhiều ứng dụng có khả năng AppleScript. Tuy nhiên, tôi không biết về một giải pháp để làm cho nó hoạt động hiệu quả với sự kết hợp giữa các cửa sổ có thể tạo script và không có script, do thực tế là trong AppleScript, các System Eventscửa sổ có thể đánh địa chỉ cho các ứng dụng không có script không có set indexđộng từ / thuộc tính. Tồn tại một hành động "AXRaise" cho một số cửa sổ khi thiết bị hỗ trợ / trợ năng được bật, nhưng điều này cũng không áp dụng cho tất cả các cửa sổ. Xây dựng các bản hack tồn tại liên quan đến việc đi qua từng ứng dụng đang hoạt động và hiển thị / ẩn hoặc thu nhỏ / khôi phục các cửa sổ, nhưng chúng là một mớ hỗn độn.

Thảo luận liên quan:


Có thể gửi cửa sổ của bất kỳ ứng dụng nào ra phía sau, thay vì cửa sổ của một ứng dụng cụ thể không?
Di Liu

Đáng buồn thay, như Mojave, điều này dường như không còn hoạt động.
Edward Falk

Kể từ Mojave, tôi hiểu rằng việc kiểm soát Finder bằng AppleScript hiện cần có quyền để chạy (chưa được kiểm tra). Nếu bạn đang nhận được lỗi như errAEEventNotPermitted sau đó có những giải pháp để thêm những điều khoản - xem các cuộc thảo luận liên quan: forums.developer.apple.com/thread/106949
JeremyDouglass

2

Câu hỏi của bạn không rõ ràng lắm, nhưng nếu điều bạn muốn là một phím tắt để duyệt qua tất cả các cửa sổ của ứng dụng hiện đang hoạt động, bạn sẽ có thể thực hiện việc này bằng Command~phím tắt.

Các ~chính thường nằm ở bên trái của 1chìa khóa.

Chỉ cần làm rõ, những gì Command~phím tắt bàn phím thực hiện là xoay vòng qua tất cả các cửa sổ của ứng dụng hiện tại mà bạn đang sử dụng. Ví dụ: nếu bạn đang sử dụng MS Word và mở ba tài liệu, nó sẽ chuyển qua ba tài liệu đó.

Tuy nhiên, Command~phím tắt không quay vòng qua Tab. Ví dụ: nếu bạn mở Safari với ba cửa sổ và mỗi cửa sổ có năm tab mở, sử dụng phím tắt này sẽ quay vòng qua ba cửa sổ, không qua các tab riêng lẻ.

Một tùy chọn khác có thể đạt được những gì bạn muốn là CommandMphím tắt. Tuy nhiên, điều này thu nhỏ cửa sổ hiện đang hoạt động vào Dock, vì vậy tôi nghi ngờ đó không phải là điều bạn muốn.

Nếu tôi hiểu nhầm câu hỏi của bạn hoàn toàn, xin vui lòng làm rõ.


Tôi nghĩ rằng đây là trường hợp sử dụng mà OP muốn: giả sử tôi mở ứng dụng thư trước ứng dụng thư của mình và tôi muốn nhanh chóng đưa ứng dụng thư lên nền trước và gửi tin nhắn đến nền, tôi có thể làm bàn phím phím tắt và ứng dụng tin nhắn sẽ ở phía sau ứng dụng thư của tôi. Tôi đã thử phím tắt của bạn và điều này đã không thực hiện được điều đó.
Owlswipe

Tôi nghĩ bạn có nghĩa là khóa `. ~ là bản in duy nhất khi Shift được giữ và `được nhấn
Crowder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.