Jika Anda tahu cara mengikat applescript ke gerakan pintas keyboard / trackpad, inilah jawabannya.
Naskah ini dimaksudkan untuk bersifat universal. Ini menggunakan istilah yang paling umum untuk memasukkan skenario sebanyak mungkin. Saya sudah menguji pada Finder, Editor Skrip, dan Firefox. Tidak ada kesalahan
Namun, ada peringatan:
Script hanya berfungsi ketika hanya ada satu instance aplikasi. (BTW, masih tertulis "beberapa instance" dalam teks OP.) Mungkin saja untuk bekerja multi-instance ke dalamnya, tapi itu perjuangan untuk hari lain.
Script ini menggulung daftar jendela dalam Window
menu. Pada dasarnya klik item tepat di bawah yang dengan tanda centang ("✓"). Jika item dengan "✓" adalah item terakhir, skrip akan mengklik item pertama di bawah baris pemisah terakhir. Sebuah skrip yang mundur ke arah sebaliknya dapat diperoleh dengan memodifikasi skrip ini. Namun, saya tidak melihat bagaimana keduanya dapat digabungkan menjadi satu skrip.
The try
pernyataan yang menghasilkan errorMessage
adalah cara CPU-paling hemat saya tahu untuk menghasilkan indeks dari separator
. Jika Anda tahu cara yang lebih baik, tolong beri tahu saya.
Naskah:
tell application "System Events" to tell (first application process whose frontmost is true) to tell menu bar 1 to tell menu "Window"
set cellingSeperator to last menu item whose value of attribute "AXEnabled" is false
set checkedItem to first menu item whose value of attribute "AXMenuItemMarkChar" is "✓"
try
set intentionalError to cellingSeperator as Unicode text
on error errorMessage
set firstItemIndex to (characters ((offset of "«class menI» " in errorMessage) + 13) through ((offset of " of" in errorMessage) - 1) of errorMessage as string as integer) + 1
end try
repeat with iterator from firstItemIndex to number of menu items
if value of attribute "AXFrame" of menu item iterator is equal to value of attribute "AXFrame" of checkedItem then
set clickItemIndex to iterator + 1
exit repeat
end if
end repeat
if clickItemIndex is greater than number of menu items then set clickItemIndex to firstItemIndex
tell menu item clickItemIndex to perform action "AXPress"
end tell