跳转至内容

AppleScript 编程/高级代码列表/显示对话框

来自维基教科书,开放的书籍,开放的世界

使用命令 "display dialog" 可以使脚本调用一个标志,它可以用于很多目的,列出它们都没有意义。但至少有几个例子,它可以用来通知用户,询问选项(是/否),提示用户输入,等等。

最简单的形式是这样的

display dialog "Hello!"

这将给出这样的结果

从复杂性的角度来看,它与这段代码完全相反...

set my_pass to text returned of (display dialog "Enter password for " & ¬
	quoted form of my_name ¬
	with title "LiveJournal Post Event" ¬
	with icon stop ¬
	default answer "" ¬
	buttons {"Continue…"} ¬
	default button 1 ¬
	with hidden answer ¬
        giving up after 5)

... 以及这个窗口

注意:要使上面的脚本正常工作,您需要设置变量 "my_name"。

  • 我将介绍第二个示例中显示的代码的每一部分,以便您对可以做什么有更多了解。
set myVariable to text returned of (

当您用这个开始 display dialog 命令时,您将调用带有输入提示的对话框窗口。只需记住在最后添加 ")",我在上面的例子中省略了它,这样您不会尝试像 ... return of () display dialog ... 那样做。

quoted form of myVariable

使用这部分命令,您可以将 "单点" 引号放在变量周围,而不是 "双点" 引号,这对于 \' 是不可能的,而 \" 可以用来在对话框文本中添加引号。

with title "Hello punk!"

这将为对话框窗口设置一个标题。

with icon stop

这将简单地将停止符号添加到对话框窗口中。

default answer ""

当您使用输入提示时,这将插入某种 "默认" 内容到输入字段中。如果它像示例中一样是 "",则输入字段中将没有任何内容。但如果是 "1",则输入字段中将有 "预写" 的数字 1(并被选中)。

注意:将此添加到 display dialog 也会创建输入提示。

buttons {"Uh, no.","Continue…"}

使用此,您可以确定按钮的数量以及它们的文本。如果没有这个,将有默认按钮 "取消" 和 "确定"。

注意:如果没有确定按钮名称,您无法执行 "if button returned of result is "OK""。

default button 1

使用此,您可以确定对话框窗口中哪个按钮是 "选中" 的。如果没有包含此代码,而您设置了自己的按钮(使用 buttons {}),则不会 "选中" 任何按钮,并且按 Enter 不会关闭对话框 - 强制用户点击其中一个按钮。按钮顺序是从 "左到右" 确定的,因此按钮编号 1 是最左侧的按钮。

with hidden answer

这将使写入输入字段的文本显示为球体,类似于 "••••"。不需要任何形式的 "with visible answer" 代码。

giving up after 5

使用此,您可以限制显示对话框窗口的时间。如果没有包含此代码,则只能使用按钮(或默认按钮的 "返回" 键)关闭窗口。如果包含,则会将单独的 "gave up:true" 或 "gave up:false" 作为结果的子字段返回。

您可以使用类似下面的代码来提取单独的返回子字段值

   set theReturnedItems to (display dialog "How are you?" default answer "Example" buttons {"Quit", "OK"} default button 2 giving up after 4)
   set theAnswer to the text returned of theReturnedItems
   set theButtonName to the button returned of theReturnedItems
   set theGaveUpState to gave up of theReturnedItems as string

由于 "result" 可以随时更改,因此立即将它的部分保存在局部变量中非常重要。您不能在 (display dialog ...) 之前使用 "set my_pass to text returned of",因为这会改变结果。您必须保留整个结果,因为您可能需要提取单独的子字段。

  • 就是这样,您对 "display dialog" 的了解与最初的作者在写这段代码时一样多。

结束注意:我写的所有文本(代码除外)都是我自己的,自发形成和书写。与任何受版权保护的来源的等同性是纯粹的巧合

华夏公益教科书