Следующий яблочный скрипт запускается как часть более крупной программы, которую я регулярно использую:

on run {viewer, path_to_pdf}
    if viewer is "Skim" then
        display notification "Skim opened: " & viewer & "!!!"
        tell application "Skim"
            revert (documents whose path is path_to_pdf as text)
        end tell
    else if viewer is "TeXShop" then
        display notification "TexShop opened: " & viewer & "!!!"
        tell application "TeXShop"
            tell documents whose path is path_to_pdf as text to refreshpdf
        end tell
    end if
end run

В настоящее время у меня установлен просмотрщик для просмотра в этой более крупной программе, поэтому при запуске этого скрипта я получаю уведомление «Skim открыл: Skim !!!"и ским обновляет мой PDF, как и следовало ожидать. Но TeXShop тоже открывается!

Я полагаю, что именно этот код вызывает TeXShop к открытию, потому что, если я удаляю tell application "TeXShop" ... end tell из кода, тогда skim обновляется, как ожидается, и TeXShop не открывается. Я в замешательстве, потому что я никогда не получаю уведомление о том, что TeXShop открывается. Этот сценарий вызывается только один раз за прогон и в соответствии с уведомлением он передается как "Skim" в качестве аргумента, так что блок кода не выполняется ... за исключением того, что он все еще влияет на систему ??

Кто-нибудь может объяснить, что здесь происходит?

0