14 9月, 2016

基本用户交互

内容纲要

AppleScript中基本的用户交互----主要是对话框。 在开始具体内容之前,有必要说明一点:常规的AppleScript脚本并不包括用户界面(UI),因此本章介绍的用户交互其实都是简单的对话框或者系统面板。
AppleScript自带的用户交互功能全部包括于AppleScript字典中Standard Addition下User Interaction类。

简单对话框和输入框

Display Dialog命令

对于这个基本的对话框,它最简单的格式是:

display dialog "对话框包含的内容"

此命令将显示一个指定文字的、拥有“确认”和“取消”按钮的对话框,并且“确认”按钮是默认按钮。

接下来看一个较为完整的对话框:

display dialog "这是一个对话框" buttons {"好的","明白"} default button "好的" with title "标题" with icon note giving up after 5

上述两例如图: 左--简单格式 、右--完整格式

具体的参数介绍如下

  • buttons 紧跟List型参数,指定对话框拥有的按钮名称,注意最多为三个
  • default button 紧跟text型参数的某一个按钮名称,设定默认按钮
  • with title 紧跟text,指定对话框的标题(省略时无标题)
  • with icon 紧跟stop/note/caution中的一个或者file类型的路径,指定显示的图标
  • giving up after 紧跟number型的整数,指定在number秒后自动消失对话框

带有输入框的对话框

要想实现输入功能,同样可以用Display Dialog命令,示例如下:

display dialog "带有输入框的对话框" default answer "默认回答"

只需要添加default answer(+text)就可以使普通对话框升级为输入框。 其中text可以用空文本(直接输入两个引号); 添加 hidden answer true 命令,可以隐藏输入文本(输入密码时用)。 此外,前面介绍的关于简单对话的几个参数仍然可用。

在OSX 10.11中的形式:

  display dialog "带有输入框的对话框" default answer "" with hidden answer

效果:

对话框的返回值

为了确定用户输入的文本和按下的按钮,我们需要通过对话框的返回值来实现。
display dialog命令的返回值总是一个Record,通常包含下面几项的一个或多个:

  • text returned 用户输入的文本
  • button returned 用户按下的按钮的名称(即显示的名称)
  • gave up 是否自动超时消失(和giving up after命令相应)

警告对话框

警告对话框一定程度上非常接近简单对话框,来看一下它的特色语法:

display alert "这是一个警告" message "警告的信息" as critical

其中:  message 参数指定了补充信息(在对话框中以小字显示)
       as warning/critical/informational 指定了对话框的重要性(表面上看起来就是图标不同)
此外可用简单对话框中的buttons(指定按钮),give up after(自动消失时间)参数。

效果:

列表选择对话框

这是一个特殊对话框,提供了一个列表供用户选择。 语法如下:

choose from list {"备选一","备选二","备选三"} with title "这是一个列表选择框" with prompt "请做出选择" default items {"备选二"} with empty selection allowed and multiple selections allowed

参数说明:
    直接参数                    紧跟List类型参数,包含所有备选项
    title                   紧跟text,指定选择框的标题
    prompt                  紧跟text,指定提示信息
    default items           紧跟List,指定默认选择的项目
    empty selection allowed         紧跟true,表示允许不选
    multiple selections allowed     紧跟true,表示允许多选

效果:

文件选择对话框

选取文件名称 Choose File Name

这个对话框很类似于一般软件的另存为对话框。要求用户指定一个将来用于保存信息的文件,请注意,Choose file name命令并不会创建文件,它的返回值是file类型的,包含完整路径。 完整语法如下:

choose file name with prompt "指定提示信息" default name "默认名称" default location file "Macintosh HD:Users"

其中:   prompt 指定提示信息;
        default name 指定默认名称;
        default location 指定默认存储位置,需要file类型的参数;
        三个参数均可以省略。

结果:

选取文件夹 Choose Folder

选取文件夹对话框,完整语法如下:

choose folder with prompt "指定提示信息" default location file "Macintosh HD:Users" with invisibles,multiple selections allowed and showing package contents

其中:   prompt 和 default location 参数同Choose File Name;
        invisibles 指定显示隐藏文件;
        multiple selections allowed 可以多选;
        showing package contents 显示包内容;
        以上参数省略时则不显示隐藏文件/不可多选/不显示包内容。

choose folder命令返回值为alias或者是List(由alias构成,当允许多选时)

选取文件Choose File

选取文件对话框几乎和选取文件夹对话框一样,拥有几乎相同的参数、语法和返回值类型,只是多了一个of type可选参数(后加List,list中应包含一个或多个text,指定允许选择的文件类型)

choose file of type {"txt"}

注意:Choose Folder所有的参数,Choose File命令也可用。

其他用户交互

除了上述所说的几种常用对话框外,AppleScript还提供了Choose color用于选择颜色,返回包含RGB信息的List,这个对话框(更准确的说是面板)和我们在其他软件,如Pages中的颜色选择面板是完全一致的。
另外还有一些不常用的对话框,可自己阅读AppleScript字典。
关于用户交互,还有几个特殊的命令:beepdelaysay。这三个命令用起来都非常简单:

  • beep 后接一个整数,让机器蜂鸣n下,如果缺省整数,将会发出一声。
  • delay 后接一个整数,让代码暂停n秒,如果缺省整数,将会没有意义。
  • say 后接一个text,让电脑读给你听这个单词或句子。注意:Mac OS只会念英文

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注