我知道你可以做set foo to text returned of (display dialog "Dialog" default answer "default")
。我已经尝试了set foo to number returned of
或set foo to integer returned of
的一切,但我似乎找不到返回数字的关键字。任何帮助吗?
您需要获得返回的文本,然后将其强制转换为整数:
set foo to (text returned of (display dialog "Enter a number" default answer "42")) as integer
或,更说明的是:
display dialog "Enter a number" default answer "42"
set foo to text returned of the result
set foo to foo as integer
我会把它分开,这样你就可以在它不是一个数字的情况下,在强制转换语句周围包裹一个try块。
set foo to text returned of (display dialog "Enter a number" default answer "42")
try
set foo to foo as integer
on error err
set foo to 0
end
并且,这里有一种方法可以反复询问,直到他们提供一个有效的数字:
set msg to "Enter a number"
repeat
set foo to text returned of (display dialog msg default answer "42")
try
set foo to foo as integer
exit repeat
on error err
set msg to "That's not a valid number. Please enter a number."
end try
end repeat
return foo