不要等待对话被解雇但仍然存储返回的答案? (AppleScript的)

时间:2015-07-18 12:44:24

标签: macos dialog applescript

使用ignoring application responses我可以在对话框仍然打开的情况下执行代码,如下所示:

ignoring application responses
    (display dialog "Type some text:" default answer ¬
        "" buttons {"Okay"} default button 1)
end ignoring
display dialog "boo"

(在这个例子中,显示消息的代码" boo"在执行之前不等待第一个对话被回答。)

很明显,当我尝试存储我的第一个对话框的结果时:

set myText to ""
ignoring application responses
    set myText to (display dialog "Type some text:" default answer ¬
        "" buttons {"Okay"} default button 1)
end ignoring
return myText

return myText会出错:"myText is not defined"

有没有办法不等待对话被回答并仍然得到结果?

1 个答案:

答案 0 :(得分:0)

当然这是不可能的。主要原因是AppleScript在单个同步线程中运行。

顾名思义ignoring application responses不等待对发送的Apple事件sysodlog(显示对话框)的响应。未设置变量myText,并立即执行下一行。

当您添加代码以直接获取返回的文本时,另请参阅错误消息No result was returned from some part of this expression.

set myText to text returned of (display dialog …