1

Итак, у меня есть небольшой пакет с яблочным шрифтом, и он даже, кажется, работает как надо. Тем не менее, по-видимому, он не открывает мои файлы, когда его просят через утилиту open . Это работает, хотя, когда я использую искатель. Кто-нибудь может мне помочь? Мой код такой:

on open theFile
    set runner to ((path to me)'s POSIX path) & "Contents/MacOS/desk_parse"
    -- We need to escape some stuff here.
    -- Expected output: '/path/to/bundle.app//Contents/MacOS/dsk_parse' '/path/to/app.desk'
    do shell script "'" & runner & "' '" & (POSIX path of theFile) & "' &"
    --display dialog runner
end open

Опять же, это работает из поиска, но не из командной строки, как:

open "theFile.ext"

Мой Info.plist rads, а также принимает расширение, которое я сохранил в нем. Так что эта ассоциация действительно работает.

1 ответ1

0

Это нормальное поведение: open обработчик применяется к:

  • Файлы, сброшенные на приложение из Finder
  • Файлы, открытые, например, tell app "Finder" open ... using path to "Your Application"

Но не для того, чтобы:

  • Файлы, переданные в качестве аргументов для open -a
  • Файлы, открытые в приложении, если приложение установлено как приложение по умолчанию для типа файла

Вместо этого вы можете создать приложение с помощью Automator или Platypus .

В Automator используйте действие «Запустить AppleScript», например:

on run {input, parameters}
    say (POSIX path of item 1 of input)
end run

Для Platypus установите флажок "Принимать пропущенные предметы" и используйте обычный обработчик запуска:

#!/usr/bin/osascript

on run argv
    say item 1 of argv
end

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .