Итак, ваш актуальный вопрос просто, как регистрировать ошибки из AppleScriptObjC:
AppleScriptObjC будет регистрировать любые ошибки, возникающие в сценарии на консоль - просто посмотреть в нижней панели в Xcode. Например, в вашем случае вы должны увидеть что-то вроде «« script »не понимает сообщение« aevtstvl ». (Это не очень ясно, но он говорит вам, что ваш скрипт отправил команду set volume
объекту скрипта, у которого не было обработчика.) Если вы хотите самостоятельно записывать и регистрировать ошибки, вы можете поместить неприятные разделы внутри блока try
/on error
и обработать его самостоятельно в обработчике ошибок.
Если вы чувствуете дополнительным любознательны, вы можете также включить NSScriptingDebugLogLevel
предпочтения, как это:
defaults write com.me.myapp NSScriptingDebugLogLevel 1
... и AppleScriptObjC будет регистрировать информацию о каждом сообщении, отправленном либо путь через мост. (Установите его на 0 или используйте defaults delete
, чтобы отключить его.)
Это ошибка регистрации. Теперь, что вы на самом деле не спросить, но я буду отвечать в любом случае, был «Как исправить мою set volume
команду?»
Краткая версия: добавить tell current application to
:
tell current application to set volume output volume 50
И да, диапазон для «новых» параметров объема составляет от 0 до 100. старая совместимость один идет от 0 до 7.
Длинная версия (Почему старая панель управления громкости ползунок был 8 остановок?.):
Там в плохое взаимодействие между файлом по умолчанию ect и set volume
. При использовании AppleScriptObjC, «it» и, следовательно, прямой параметр по умолчанию, если вы не говорите иначе, является текущим сценарием, и set volume
дросселирует это. Вы можете заставить «это» быть ничем, говоря tell current application to
. (В качестве альтернативы вы можете дать ему явный прямой параметр, используя старую форму set volume x
, где x
- действительное число от 0 до 7. Однако это не соответствует номерам, которые вы получаете от get volume settings
, только позволяет вам устанавливать выходные данные том, и не позволяет вам правильно устанавливать такие вещи, как «приглушенный».)
И, кстати, если ваш проект AppleScriptObjC достаточно прост (в частности, если вам не нужен какой-либо интерфейс), вы можете написать его непосредственно в редакторе AppleScript: выберите «Файл»> «Создать» из «Шаблон»> «Cocoa-AppleScript» Апплет и использовать обычные обработчики AppleScript on run
и on open
, за исключением того, что теперь вы можете также вызывать что-либо из Cocoa.
1) Apple не любит приложения, устанавливающие громкость (рекомендации Apple по человеческому интерфейсу снова наступают). 2) Я считаю, что максимум равен 10, а не 50. – 11684
Я получил его как простой аппликатор, просто не как applescript objc app ... и я уверен, что 100 - это максимум, но, возможно, проблема в том, что проблема будет пытаться установить громкость 0 до 10 –
Это не сработало, и это от 0 до 100 –