Applescript не может распознать путь после импорта основы - PullRequest
0 голосов
/ 07 ноября 2018

Я могу показать пользовательский значок в AppleScript, используя код ниже

set iconPath to "/Users/dutt/myFolder/AppIcon.icns" as POSIX file
set theContent to " hi"
display dialog theContent with icon file iconPath with title "Hello" buttons {"Cancel", "Ok"} default button "Ok"

Когда я импортирую тональный крем, используя приведенный ниже код, он выдает файл ошибки, не содержащий значок

use framework "Foundation"
use scripting additions
set iconPath to "/Users/dutt/myFolder/AppIcon.icns" as POSIX file
    set theContent to " hi"
    display dialog theContent with icon file iconPath with title "Hello" buttons {"Cancel", "Ok"} default button "Ok"

Я полагаю, что это связано с проблемой пути, сценарий Apple не может получить путь к значку после использования Foundation Framework

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Я предлагаю использовать относительные пути HFS, path to home folder указывает на домашнюю папку текущего пользователя.

Это позволяет избежать пути POSIX - файл POSIX - псевдоним танцевать и работает с Foundation

и без него.
set iconPath to alias ((path to home folder as text) & "myFolder:AppIcon.icns")
set theContent to " hi"
display dialog theContent with icon iconPath with title "Hello" buttons {"Cancel", "Ok"} default button "Ok"

Обратите внимание на пропущенное ключевое слово file после with icon

0 голосов
/ 07 ноября 2018

Эта проблема вызвана тем, как ссылки на файлы разрешаются после того, как вы начнете внедрять Objective-C в ваш AppleScript.

Решение состоит в том, чтобы создавать ссылки на ваши файлы, используя приведения. Итак, измените:

icon file iconPath

до:

icon (iconPath as alias)

Или может потребоваться изменить:

set iconPath to "/Users/dutt/myFolder/AppIcon.icns" as POSIX file

до:

set iconPath to "/Users/dutt/myFolder/AppIcon.icns"

затем создайте ссылку на файл в вашей команде display dialog следующим образом:

icon (iconPath as POSIX file as alias)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...