ฉันจะสร้าง AppleScript ที่แสดงเมนูดร็อปดาวน์โดยไม่ใช้ Xcode ได้อย่างไร
ฉันจะสร้าง AppleScript ที่แสดงเมนูดร็อปดาวน์โดยไม่ใช้ Xcode ได้อย่างไร
คำตอบ:
ไม่มีแนวคิดในตัวของเมนูในการเตือนโต้ตอบภายในภาษา AppleScript
สิ่งที่ใกล้เคียงที่สุดที่คุณสามารถทำได้คือตั้งชื่อไฟล์จำลอง (ในโฟลเดอร์ชั่วคราว) ด้วยการกระทำที่เหมาะสมและให้ผู้ใช้เลือกไฟล์ที่มีป้ายกำกับด้วยการกระทำที่คุณต้องการดำเนินการ
open folder blah
with selected file bah
do whatever
"โซลูชัน" ที่น่ากลัวสำหรับปัญหาที่ต้องมีเมนูโกโก้ไม่ว่าคุณจะสร้างเป็น Xcode หรือบุคคลอื่นทำXcode / IB เป็นเครื่องมือที่สร้างเมนูขึ้นมา MacRuby เป็นวิธีที่ดีในการเขียนสคริปต์แอพที่ต้องการ UI ที่โดดเด่นมากกว่า AppleScript คุณไม่จำเป็นต้องใช้ Xcode / IB เพื่อทำการทับทิมแอพจากสคริปต์ล้วนๆ
คุณสามารถสร้าง NIB โดยใช้ตัวสร้างส่วนต่อประสานและสร้างสคริปต์ทั้งหมดโดยใช้ AppleScript แต่ปลายปากกาจะกำหนดเมนูเอง - ไม่ใช่ AppleScript (แม้ว่า AppleScript จะสามารถสร้างหรือลบรายการเมนูในเวลาทำงาน)
ทางเลือกหนึ่งคือการใช้CocoaDialog **:
set l to {"aa", "bb", "cc"}
set choices to ""
repeat with x in l
set choices to choices & quoted form of x & " "
end repeat
set dialog to paragraphs of (do shell script "/Applications/CocoaDialog.app/Contents/MacOS/CocoaDialog" & " standard-dropdown --title title --text text --items " & choices)
if item 1 of dialog is "2" then return -- pressed cancel button
item ((item 2 of dialog) + 1) of l
คุณสามารถใช้choose from list
:
choose from list {"aa", "bb", "cc"} with title "Title" with prompt "Please choose" default items "bb" with multiple selections allowed
** URL ดั้งเดิมของ repo Github นี้mstratman
มีการเปลี่ยนแปลง จากการวิจัยดูเหมือนว่าCocoaDialogเปลี่ยนไปเป็นองค์กร นี่คือการเปลี่ยนแปลงใหม่:
นอกจากนี้หากคุณต้องการรายการให้เลือกคุณสามารถทำได้
choose from list listYouDefined with prompt "Choose from the list."
Google "AppleScript เลือกจากรายการ"
ฉันเข้าใจว่านี่เป็นคำถามเก่า แต่เนื่องจากคำตอบที่ดีที่สุดที่ระบุไว้ในเอกสารสำหรับ CocoaDialog 2:
การดาวน์โหลดไม่ทำงานดาวน์โหลดสำหรับ cocoadialog 2 ไม่สามารถใช้งานได้อีกต่อไป นี่คือส่วนใหญ่เนื่องจากการเปลี่ยนแปลงต่าง ๆ และการขาดการจัดเก็บถาวรมากกว่าปี
และ 3 ยังไม่มาถึงสปริง / ซัมเมอร์ 18 ฉันค้นหาตัวเลือกอื่นและพบPashua :
Example: Using popup
p.type = popup
p.label = Example popup menu
p.width = 310
p.option = Popup menu item #1
p.option = Popup menu item #2
p.option = Popup menu item #3
p.default = Popup menu item #2
ภาพหน้าจอ:
GitHub repo
หลังจากใช้แล้วฉันพบว่าคุณสามารถติดตั้ง Pashua.app ในไดเรกทอรีแอปพลิเคชันของคุณหรือคุณสามารถฝัง Pashua ในแอปของคุณ ฉันไม่ใช่ผู้เขียนสิ่งนี้ แต่ฉันต้องการโซลูชันพื้นฐานสำหรับ GUI และสิ่งนี้ไม่ได้กล่าวถึง
คุณไม่จำเป็นต้องมี Xcode สำหรับ AppleScript เพียงเปิดตัวแก้ไข AppleScript ใน Applications / Utilities (ทางลัด Finder สำหรับโฟลเดอร์ Utilities: ⌘ Command+ Shift+ U) มีบางตัวอย่างรหัสสำหรับเมนูแบบเลื่อนลงบนเป็นMacScripter: เมนูแบบเลื่อนลง