Masalahnya, di luar AppleScript:
Untuk menyaksikan masalah 1 , lakukan hal berikut:
Klik dua kali pada folder yang ada di Desktop. Melakukannya akan membuka folder ini di Finder.app.
Kembali ke Desktop dan klik dua kali pada folder yang sama lagi.
Alih-alih jendela kedua sedang dibuat, jendela yang sebelumnya dibuat akan dibawa ke latar depan.
Solusi, di luar AppleScript:
Jadi, apa yang Anda lakukan jika Anda ingin dua jendela Finder dari folder yang sama?
Ada kluge:
Buat jendela Finder baru dengan membuka folder lain. Dari dalam jendela baru ini, sekarang jika Anda menavigasi ke folder yang diinginkan, maka Anda akan berhasil mengubah jendela ini ke folder yang diinginkan, dan memiliki dua jendela folder ini.
Untuk menavigasi ke folder yang diinginkan dalam jendela Finder baru, metode apa pun akan berfungsi:
Klik pada folder, jika bookmark di sidebar (jika diaktifkan, terletak di sebelah kiri jendela).
Klik pada folder, jika kebetulan ada di bilah jalur (jika diaktifkan, terletak di bagian bawah jendela).
Gunakan bilah pencarian bawaan jendela .
Atau, cukup arahkan ke folder secara manual.
Masalahnya, di AppleScript:
Kode AppleScript berikut akan membuka folder di jendela Finder baru:
set targetFolder to POSIX file "/Users/Me/Desktop/MyFolder"
tell application "Finder"
open targetFolder
activate
end tell
Dengan cara yang sama persis dengan perilaku Finder yang tidak terprogram (seperti didefinisikan di atas), jika Anda menjalankan kode ini untuk kedua kalinya (tanpa menutup jendela Finder yang dibuat sebelumnya), maka jendela yang dibuat sebelumnya akan dibawa ke latar depan.
Solusi AppleScript yang diinginkan:
Inilah perilaku yang diinginkan:
- Jika
targetFolder
sudah ada di setiap jendela yang terbuka Finder (termasuk jendela Finder diminimalkan), saya ingin AppleScript untuk membuat jendela baru untuk hal yang samatargetFolder
(yaitu, duplikat jendela).
Idealnya, saya ingin jendela duplikat dibuat, tanpa harus menggunakan "trik" yang saya gambarkan di atas (yaitu, membuka folder lain yang arbitrer terlebih dahulu, sebelum membuka folder yang diinginkan). Namun, saya akan mengerti jika ini tidak mungkin (yaitu, jika metode program harus meniru metode manual).
1. Saya mengerti bahwa perilaku ini sama sekali bukan bug atau masalah "nyata". Apple jelas memprogram tindakan ini dengan sengaja; mereka mungkin memutuskan bahwa kebanyakan orang tidak perlu atau menginginkan jendela Finder yang berlebihan.
OS X El Capitan, versi 10.11.6.
sumber
if statement
bahkan tidak diperlukan untuk menangkap untuk kasus folder sudah terbuka, karenaset target of
metode Anda berfungsi dengan baik, terlepas. Terima kasih!Solusi ini membawa Anda ke tempat yang Anda inginkan, tetapi tidak menggunakan solusi. Saya mencoba mengatur properti "target" ketika saya membuat jendela, tetapi itu tidak berpengaruh. Saya meninggalkan bagian itu dalam naskah tetapi berkomentar untuk referensi Anda.
Saya juga mencobanya dengan memanggil baris perintah dengan do script shell, tetapi memiliki efek yang sama seperti yang Anda daftarkan di "Masalah" di atas.
sumber
Gunakan
reveal
perintah untuk menghindari perilakuopen
perintah:Peringatan: selalu membuka jendela dalam tampilan kolom
sumber