我在Xcode 3.2一个AppleScript的Xcode项目,我试图改变系统音量...但它不工作...它要么停止的NSTimer或没有做的所有事情...
是否有记录的错误,所以我能确定问题的方式?
这里是我的代码
set newVolume to 50
set volume output volume newVolume
textName's setStringValue_(currentVolume)
set currentVolume to newVolume
OBV这是一个更凝结的版本,但这个从字面上无法正常工作......这是一个NSTimer的内部,但是,即使不是一个NSTimer内它仍然无法正常工作...... newVolume,currentVolume和textName都宣布.. 。做我需要声明的东西设定的音量线?
因此,您的实际问题只是如何从AppleScriptObjC记录错误:
AppleScriptObjC将登录脚本扔在控制台的任何错误 - 只要看看在Xcode中底部窗格中。 例如,在你的情况,你应该看到类似“«脚本»并不了解«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个站。)
龙版本:
有默认的直接参数之间的相互作用不好set volume
它的操控性。 当使用AppleScriptObjC,“它”,因此默认的直接参数,除非你正好相反,是当前的脚本,并set volume
扼流圈上。 您可以强制“它”是没什么说tell current application to
。 (或者,您可以通过使用老式的形式给它一个明确的直接参数set volume x
,其中x
是从0到7的实数。然而,这并不符合你得到的数字get volume settings
,只允许您设置的输出音量,并且不会让你正确设置,比如像“静音”。)
顺便说一下,如果你的AppleScriptObjC项目是足够简单(特别是,如果你不需要任何接口),您可以直接在编辑器中的AppleScript写:选择File> New从模板>可可AppleScript的小程序,并使用正常的AppleScript on run
和on open
处理程序,但您现在还可以从可可调用任何东西。