当用户与应用程序交互时,applescript和循环停止(在Yosemite上)
如果这是一个愚蠢的问题,请原谅,我已经编写cocoa应用程序很长时间了,但直到最近才开始让它们可以编写脚本 使用此特定应用程序编写脚本效果良好。但是如果脚本有这样一个循环当用户与应用程序交互时,applescript和循环停止(在Yosemite上),applescript,infinite-loop,Applescript,Infinite Loop,如果这是一个愚蠢的问题,请原谅,我已经编写cocoa应用程序很长时间了,但直到最近才开始让它们可以编写脚本 使用此特定应用程序编写脚本效果良好。但是如果脚本有这样一个循环 tell application "myApplication" repeat set someProperty of someObject to someValue delay 0.5 end repeat end tell (这实际上是一个循环连接灯泡颜色的脚本,因此它确实希望成为一个无限循环。)
tell application "myApplication"
repeat
set someProperty of someObject to someValue
delay 0.5
end repeat
end tell
(这实际上是一个循环连接灯泡颜色的脚本,因此它确实希望成为一个无限循环。)
。。。当一切都在小牛身上运行时,没问题。但是在约塞米蒂,如果用户与myApplication的UI交互,那么事情就停止了。脚本继续运行一段时间(myApplication中没有发生任何事情),然后脚本停止并超时(-1712)
someObject类中someProperty的“setter”返回void,我已经通过发送给控制台的消息确认,它在每次调用时都正确返回
这种行为是预期的吗?是否有明显的问题我做错了?这不是一个愚蠢的问题,我认为这是操作系统中的一个错误,因为我的应用程序显示了同样的问题,这在过去一直有效。我可以通过添加一个空闲计时器来解决这个问题,它只查找和处理苹果事件。这不是一个真正的解决方案,而是一个实用的创可贴:我觉得求助于拉式事件模型,而不是依赖于现有的(和以前工作的)推式事件模型是非常不雅观的。当你浏览菜单栏中的菜单(或跟踪任何控件)时,有人知道为什么苹果事件没有被处理吗??