Свойства Keynote не передаются в Applescript

Мне нужен мой Mac, чтобы сказать номер текущего слайда при презентации. Я написал скрипт ниже, но он не работает, как ожидалось.

on slideNumber()
    tell application "Keynote"
        return the slide number of the current slide of the front document
    end tell
end slideNumber

repeat
    say slideNumber()
    delay 1
end repeat

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

Я также попробовал это с помощью:

on idle
    say slideNumber()
    return 1
end idle

и экспорт в виде открытого приложения, но возникает та же проблема.

Разве невозможно, чтобы приложение Applescript вернуло правильный номер слайда без приложения / скрипта, находящегося на переднем плане? Я использую Keynote 6.2, если это актуально.

1 ответ

Я понимаю, что этот вопрос старый. Что бы это ни стоило, увидев это только сейчас, ваш сценарий прекрасно работает для меня. Я на MacOS Sierra (10.12.1) с использованием Keynote версии 7.0.5. Скопируйте / вставьте ваш скрипт в Script Editor и запустите его. Произносит правильный номер слайда, когда я переключаюсь между слайдами как в режиме редактирования, так и во время презентации.

Возможно, что-то не так с интерфейсом сценариев Keynote 6.2? Я видел случаи, когда приложение с ошибками просто не делает то, что рекламирует, и более поздняя версия исправляет это. Вам все еще нужно это для работы с Keynote 6.2?

Другие вопросы по тегам