คุณสามารถกำหนดทางลัดให้กับสคริปต์เช่นนี้
tell application "System Events" to tell process "Finder"
value of attribute "AXFocusedWindow" is scroll area 1
end tell
tell application "Finder"
if result is true or number of windows is 0 then
set t to desktop
else
set t to target of Finder window 1
end if
set f to make new file at t
if t is desktop then
set selection to f
else
select f
end if
end tell
มีข้อผิดพลาดใน 10.7 และ 10.8 ที่มีผลกับสคริปต์อื่น ๆ และบริการ Automator เช่นนี้ Finder จะไม่สนใจหน้าต่างใหม่เมื่อได้รับinsertion location
และselection
คุณสมบัติ หากคุณเปิดหน้าต่าง Finder ใหม่ให้เลือกบางรายการในนั้นและรันtell app "Finder" to selection
ใน AppleScript Editor ผลลัพธ์คือรายการที่เลือกในบางหน้าต่างด้านหลังหน้าต่างด้านหน้า (หรือรายการว่าง) วิธีแก้ปัญหาหนึ่งคือการย้ายโฟกัสไปยังแอปพลิเคชันอื่นและย้อนกลับ
ดังนั้นวิธีการตรวจสอบเหล่านี้ไม่ว่าเดสก์ท็อปที่เลือกจะทำงานได้อย่างน่าเชื่อถือหรือไม่:
tell application "Finder"
insertion location as alias is desktop as alias
container of item 1 of (get selection) as alias is desktop as alias
end tell
คุณสามารถรวมสคริปต์เป็นบริการ Automator ได้ แต่มีข้อผิดพลาดอีกประการหนึ่งที่ทางลัดสำหรับบริการ Automator จะไม่ทำงานจนกว่าคุณจะวางเมาส์เหนือเมนูบริการจากแถบเมนู หากประเภทอินพุตถูกตั้งค่าเป็นไม่มีอินพุตเซอร์วิสจะไม่แสดงในเมนูบริบท หากถูกตั้งค่าเป็นโฟลเดอร์หรือไฟล์คุณจะต้องคลิกรองหรือโฟลเดอร์บางไฟล์เสมอ
คำถามที่เกี่ยวข้อง:
ฉันไม่ได้ลงคะแนนให้ปิดคำถามนี้เนื่องจากวิธีแก้ปัญหาในคำถามอื่น ๆ ได้รับผลกระทบจากข้อบกพร่องสองข้อที่กล่าวถึงข้างต้น เราน่าจะได้รับคำถามมากขึ้นเช่นนี้ซึ่งอาจถูกปิดเป็นคำถามที่ซ้ำกัน