我一直在研究的AppleScript应用程序给出了错误“Finder收到错误:Finder窗口ID 12575无法返回按钮”。每当我尝试从我的应用程序打开一个查找器窗口时,就会发生这种情况。以下是发生此错误的应用程序的主要部分:
display dialog "What would you like to do?
Sleep = Go to sleep
Finder = Open Finder
Time = Display current time and date
2048 = Play 2048
Quit = Quit application" default answer "" with title "Control panel"
if the text returned of the result is "Sleep" then
tell application "System Events" to sleep
display dialog "Hello, welcome back!" buttons {"Thank you!"} default button 1
return
else if the text returned of the result is "Finder" then
tell application "Finder" to make new Finder window
else if the text returned of the result is "Time" then
set a to (current date) as list
set AppleScript's text item delimiters to linefeed
set a to a as text
display dialog a buttons {"OK"} default button 1
else if the text returned of the result is "Quit" then
return
else if the text returned of the result is "2048" then
tell application "Terminal"
do script "/Users/student/Documents/2048.sh"
activate
end tell
return
else
display dialog "Invalid response" with title "Invalid response" buttons {"Go back", "Quit"} default button 1
end if
if the button returned of the result is "Go back" then
display dialog "What would you like to do?
Sleep = Go to sleep
Finder = Open Finder
Time = Display current time and date
2048 = Play 2048
Quit = Quit application" default answer "" with title "Control panel"
else
return
end if
if the text returned of the result is "Sleep" then
tell application "System Events" to sleep
display dialog "Hello, welcome back!" buttons {"Thank you!"} default button 1
return
else if the text returned of the result is "Finder" then
tell application "Finder" to make new Finder window
return
else if the text returned of the result is "Time" then
set a to (current date) as list
set AppleScript's text item delimiters to linefeed
set a to a as text
display dialog a buttons {"OK"} default button 1
else if the text returned of the result is "Quit" then
return
else if the text returned of the result is "2048" then
tell application "Terminal"
do script "/Users/student/Documents/2048.sh"
activate
end tell
return
end if
答案 0 :(得分:1)
来自ASLG的报价:
“执行语句时,AppleScript将结果值(如果有)存储在预定义的属性结果中。值保持不变,直到执行另一个生成值的语句。在执行生成结果的语句之前,结果的值是未定义的。您可以通过查看脚本窗口的“结果”窗格来检查“脚本编辑器”中的结果。“
结果属性由前一个已执行的语句错误地设置tell application "Finder" to make new finder window
我建议您(任何脚本编写者)是当您希望语句的结果稍后在代码中使用而不是下一行时应该使用变量。这里和示例如何使用变量。
set dialogResult to display dialog "What would you like to do?" default answer "Continue"
if button returned of dialogResult is not "OK" then
return false
end if
if text returned of dialogResult is not "Continue" then
return false
end if
return true