Почему при перетаскивании папки в приложение Applescript отображается диалоговое окно?

У меня есть приложение Applescript, которое может получать файлы или папки, перетаскиваемые на его значок:

on open theDroppedItems
    tell application "Finder"
       set droppedItemSourcePath to (the POSIX path of theDroppedItems)
       ...

На этом этапе сценария, когда мое приложение получает файл или папку, неизвестное и бесполезное приложение Applescript с именем «Droplet» отображает диалоговое окно открытия файла / папки. Мой сценарий был скомпилирован как приложение с помощью Script Debugger 6.

Я не понимаю, почему это странное приложение "Капля" меня что-то спрашивает.


person Zax    schedule 16.10.2018    source источник


Ответы (1)


Ошибка заключается в том, что theDroppedItems является списком спецификаторов alias, даже если был удален только один файл, и получение пути POSIX списка вызывает ошибку.

Чтобы получить все POSIX-пути сброшенных элементов, используйте

on open theDroppedItems
    set {TID, text item delimiters} to {text item delimiters, return}
    set droppedItemsSourcePaths to POSIX path of (theDroppedItems as text)
    set text item delimiters to TID
    display dialog droppedItemsSourcePaths buttons {"OK"} default button "OK"
...

Для обработки файлов по одному используйте цикл

on open theDroppedItems
    repeat with anItem in theDroppedItems
      -- do something with anItem
    end repeat

...

Используйте блок Finder tell только в том случае, если вы собираетесь использовать терминологию Finder.

Упомянутое Droplet - ваше приложение.

person vadian    schedule 16.10.2018