String &引用;将foo设置为返回的文本;关于数字?

String &引用;将foo设置为返回的文本;关于数字?,string,integer,applescript,automator,String,Integer,Applescript,Automator,我知道您可以执行将foo设置为返回的文本(显示对话框“dialog”默认答案“default”)。 我尝试了从set foo到返回的的数字或set foo到返回的的整数的所有方法,但我似乎找不到返回数字的关键字。有什么帮助吗?您需要获取返回的文本,然后将其强制转换为整数: set foo to (text returned of (display dialog "Enter a number" default answer "42")) as integer 或者,更详细地说明如下: disp

我知道您可以执行
将foo设置为返回的文本(显示对话框“dialog”默认答案“default”)

我尝试了从
set foo到返回的
的数字或
set foo到返回的
的整数的所有方法,但我似乎找不到返回数字的关键字。有什么帮助吗?

您需要获取返回的文本,然后将其强制转换为整数:

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

不过,这是一个相当愚蠢的方法。我的意思是,这些都不是像你这样消息灵通的人的错,但是,天哪,苹果。Applescript是为与其他应用程序的交叉功能而设计的。默认的“显示”对话框“标准添加”是一个基本选项。您不能告诉它只接受整数。要做到这一点,您必须用cocoa或其他语言编写自己的对话框。尽管如此,必须强制使用“()作为整数”并不是额外要做的事情。