Следующий яблочный скрипт запускается как часть более крупной программы, которую я регулярно использую:
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" в качестве аргумента, так что блок кода не выполняется ... за исключением того, что он все еще влияет на систему ??
Кто-нибудь может объяснить, что здесь происходит?