本节知识点:

  1. 操作:如果(If)
  2. 操作:计数(Count)
  3. 操作:获取剪切板(Get Clipboard)
  4. 捷径技巧:判断输入项目的数量
  5. 捷径知识点:操作的输入(Input)

在进阶捷径三大件儿——变量、条件、重复——之中,条件是相对来说比较好理解的,和生活中我们思考时的逻辑结合得也最密切。

我们时常会根据条件进行判断:如果……那我就……。比如和朋友吃火锅,如果对方能吃辣,那我们就点麻辣底料。但是呢,严谨来说,这句话我们主要关注和强调了符合条件的部分,也就是假设朋友吃辣,而没有给予不符合条件的部分给予足够的关注,也就是说我们一开始往往不会想如果他不吃辣怎么样。

当然,吃火锅这个例子里,不吃辣就换底料,这很简单,似乎也不用多加考虑。但是有很多事情,只考虑成功是不行的。我们看不少求婚失败的视频,这些人很明显就没有考虑过「如果失败,那我就……」的情形,他们过于关注符合假设的那个结果,一旦失败,起码要宕机(愣)一会,反应一下。

而对于捷径来说,当我们假设「如果……就……」的时候,我们同时就假设了「如果不……就……」,两者需要给予同等的关注。要安排好符合条件时的操作,也要安排好不符合条件时的操作。我们来看这个操作就明白:

操作「如果」

条件相关的操作只有这一个「如果」,但是当你拖出来它的时候,会发现它还要带出来一个「否则」。这就是在提示你要两个都考虑清楚。

只说概念怕是大家已经懵了,我们就来一个特别常见的实例,来看看条件相关的操作是如何在捷径中发挥无可替代的作用的。

用「如果」解决输入判断

首先我们来熟悉一下这里我们需要了解到的,捷径中「输入」的概念。

输入

当一个操作 A,向下一个操作 B 传递数据 C 的时候,我们就可以说操作 A 向操作 B 输入了数据 C。比如说我们第三周制作 App Store 应用相关的捷径,我们用「获取 App Store 应用的详细信息」这个操作来获取应用的图标,然后把这个图标传递给了下一个操作「蒙版图像」。那么这时候,我们就可以说,「获取 App Store 应用的详细信息」向「蒙版图像」输入了应用的图标。

在我们了解了输入的概念之后,我们就很容易想到,很多时候,这个输入的来源是不固定的。

比如说我们想做一个摘抄的捷径,把自己读到的、看到的精妙句子或者歌词都放在一起。我们先不要想把它们放在哪,我们想想我们「输入」的方式,其实就有很多种。

如果我们正好是在 iOS 设备上看到了,那我们可以选择「复制」,那这时候输入的方式就是「剪贴板」;如果我们是看电影时看到的台词,那我们就没办法轻易复制了,这时候用手动输入的方式会更快;此外在捷径中,我们还可以直接获取选中的文本,这也是一种输入的方式。

  1. 获取文本
  2. 剪贴板
  3. 手动输入

如果想做一个能够适应任何场景的摘抄捷径,考虑到这 3 个输入的方式是最基本的。而且我们想让捷径很聪明地就能处理它,即:

  1. 当捷径获取到文本时,我们就直接使用捷径获取到的文本,不使用剪贴板和手动输入;
  2. 当捷径没有获取到文本,但是剪贴板里文本时,我们就使用剪贴板里的文本,不使用手动输入;
  3. 当捷径没有获取到文本,剪贴板里也没有文本时,我们就使用手动输入

这三者的逻辑大家再理一下,简而言之它的规则就是:

  • 捷径获取文本的优先级最高,它如果 OK 了,剩下两个直接跳过。
  • 剪贴板的优先级次之,捷径获取文本不 OK 时,检查剪贴板 O 不 OK,剪贴板如果 OK,直接跳过手动输入。
  • 手动输入的优先级最次,前两个都不 OK,再使用手动输入。

这个逻辑也是避免剪贴板分明有东西还让我们手动输入这种尴尬,毕竟捷径获取文本和剪贴板这两项都是可以直接通过「今日」视图来完成的,不需要打开捷径应用。而手动输入文本,哪怕仅仅是粘贴,都要打开捷径应用。能少跳转一下就少跳转一下。

逻辑已经理得明明白白了,现在我们就来看怎么用条件来实现这组逻辑。

捷径获取文本 & 剪贴板

首先我们来处理捷径获取文本和剪贴板之间的关系。

如果你还不知道如何用捷径获取文本,那说明你没有认真学习上一周的内容。上一周我们已经讲过了如何使用捷径获取 App Store 应用,在设置获取 App Store 应用的地方,就有一个选项是文本,我们把这个选项勾上,捷径的顶部就会出现「此捷径接受文本」的字样:

此捷径接受文本

这时当我们选中文本再运行捷径,就可以获取我们选中的文本了。

接下来,我们回想一下我们的逻辑,是:

当捷径获取到文本时,我们就直接使用捷径获取到的文本,不使用剪贴板。

那么我们怎么让捷径判断,我们获取到了文本了没呢?这里要用到的是一个独特的技巧——判断输入项目的数量。

捷径技巧:判断输入项目的数量

「判断输入项目的数量」这句话,「输入」我们已经解释过了,在这里还需要解释一下「项目」。这个「项目」,它不是英文里那个 Project,而是 item,它是个单位。它是什么单位呢?是结果的单位。

在捷径里,一个操作可能会产出 1 项结果,比如我们获取应用的图标,那肯定就是 1 项结果。也可能会产出多项结果,比如说我们过滤照片、或者在捷径里搜索 App Store 应用,都会出现多项结果。

而在这个例子中,我们主要是要把「项目的数量」和「文字(字符)的数量」进行区分。一段文字,不管它有多长,有多少字,我们只要一次性选中了它,那它们都存在于 1 项结果之中。也就是说,选中的字数再多,运行捷径后,还是 1 项结果。

所以这里,我们就要判断捷径到底有没有获取到文字,那我们就可以转为判断输入的项目是 1 还是 0。是 1,就说明获取了文本,是 0 就说明没获取。

检查上一步获取项目数量的操作,是「计数」:

加入「计数」操作

我们把它拖进来,会发现「数量」之后第一个选项就是「项目」,我们要选择的就是它。如果想看看结果是不是 1,可以在「计数」操作下面再接一个「快速查看」,然后选择一段文本,在共享表单(Share Sheet)里运行这个捷径,查看结果。

接下来,我们就可以利用「如果」这个操作了,我们把如果拖到「计数」下面,并且把「输入」设为「等于」,这里应该填等于几呢?应该填 1。

因为我们的逻辑是,1 为有,0 是无,如果捷径获取到了文本,那这里就是 1,那我们就可以使用「获取变量」来获取这段文本(捷径输入)。如果这里不是 1,那就是这个捷径运行过后没有获取到文字,也就是说我们在运行捷径之前没有选择文字,那这里只能是 0。这就是「否则」后面的事了,所以我们就要在「否则」后面放进「获取剪贴板」的操作:

处理捷径获取文本和剪贴板的操作组合

在上图里,「获取变量」中的「变量」,我们设为了「捷径输入」。「捷径输入」是一个捷径的内置变量,和「剪贴板」、「日期」那些都存在于我们已经很熟悉了的键盘上方的快速输入栏中。在这里我们需要在「获取变量」这个操作里调用它,就需要借助魔法变量:

如何在「获取变量」中调用「捷径输入」

先轻触「获取变量」里的「选取变量」,弹出菜单后选择「选择魔法变量」,然后把捷径拉到最顶部,就能看到绿色的按钮「捷径输入」了。

「捷径输入」就是我们在捷径设置中设置过的,允许这个捷径接收的东西。第三周里我们允许捷径接收 App Store 应用,那么当我们在 App Store 运行这个捷径之后,我们理所当然地就获取到了 App Store 的应用。这里,同样的,我们允许这个捷径接收文本,那么当我们选中文本再运行这个捷径,我们接收的,也就是这个「捷径输入」自然而然地就是我们运行捷径前选中的文本。同样,大家对这个逻辑理解有点困难的,可以在这一步之后加一个「快速查看」,然后选中一段文本运行一下试试看。

那么到此为止,我们就解决了捷径获取文本和剪贴板之间的关系,做到了:

如果,捷径获取到了文本,那么就不用剪贴板内容;否则,就使用剪贴板的内容。

剪贴板 & 手动输入

接下来我们还要再面对一层逻辑关系,那就是:如果剪贴板里有文本,那么就不用手动输入;否则,使用手动输入。

而且我们不能忘记,「剪贴板 & 手动输入」这一层关系是低于前面「捷径获取文本 & 剪贴板」那一层关系的。我们是先看捷径有没有获取文本,如果没有再看的剪贴板,剪贴板要再没有,才看的手动输入。

所以这一层条件,其实是在上一层的条件之下的。也就是说,这一层逻辑是在上一层逻辑的包裹之中的。在捷径中,它的表现方式就是在「获取剪贴板」这个操作下面,再加一次计数判断。

当然了,它的逻辑未变,所以我们直接来看操作图:

处理剪贴板与手动输入之间逻辑的操作组合

首先要注意最上面的「否则」,它提示了我们这一层逻辑是在上一层逻辑之中。然后我们再来看这一层逻辑的细节:

我们在获取剪贴板下面加了「计数」的操作,操作里的「数量」仍然选择「项目」。随后我们在「计数」下面接上「如果」,如果输入等于 1,那么就说明输入的项目数是 1,就说明剪贴板里有东西。否则,剪贴板里没东西,那么我们就手动输入文本。手动输入文本我们用了我们已经很熟悉的「运行时询问」。

这样一来,我们就完成了「剪贴板 & 手动输入」这层逻辑关系的组织,并且也完成了整个逻辑关系的组织。

现在我们这个捷径,已经完全可以做到:

  1. 当捷径获取到文本时,我们就直接使用捷径获取到的文本,不使用剪贴板和手动输入;
  2. 当捷径没有获取到文本,但是剪贴板里文本时,我们就使用剪贴板里的文本,不使用手动输入;
  3. 当捷径没有获取到文本,剪贴板里也没有文本时,我们就使用手动输入
完整操作列表

捷径下载:文本输入判断 

小结

如果能把这节所讲的逻辑关系整理清楚,那么就可以说对「如果」这个操作的把握,同时也相当于对捷径里的条件逻辑,达到了合格的程度。

这节所使用的「文本输入判断」是许多复杂捷径的起手动作,也属于我们之前说过的「操作组合」。所以请认真动手制作,感受它的逻辑,并且把这个捷径保留下来,日后你制作复杂捷径,会经常用到它。

练习:这一节我们做的只是「文本输入判断」,在制作复杂的捷径时,我们会遇到「图片输入判断」的情况。请根据「文本输入判断」的模板,制作「图片输入判断」。

进一步说明:

图片输入判断会经常用于图片选取相关的捷径(比如说 OCR 图片识别、以图搜图等捷径)上。请做一个捷径,当捷径输入中可以获取到图片,就从捷径输入中获取图片。否则使用剪切板获取图片。剪切板里还没有,就选择是从相册获取图片,或是用照相机拍照。