此 AppleScript 代码适用于我使用最新版本的 macOS Mojave。
在 Automator 中测试您的困境后,我也遇到了同样的问题。不过,我确实想出了一个似乎对我有用的解决方法。
在 Script Editor.app 中,将以下 AppleScript 代码粘贴到新文档中并调整代码以满足您的需要。接下来,将此脚本编辑器文档保存为应用程序。
activate
set theAnswer to text returned of (display dialog "Answer This Question" default answer ¬
"" buttons {"Cancel", "OK"} default button 2 cancel button 1 with title ¬
"Ask For Text" with icon 1 giving up after 20 without hidden answer)
set the clipboard to theAnswer
请务必添加此新应用,以允许在系统偏好设置 > 安全和隐私 > 隐私 > 辅助功能和全盘访问菜单项中控制您的计算机。
现在不要在 Automator 工作流程中插入“询问文本”命令,而是添加“启动应用程序”命令并选择您刚刚在脚本编辑器中创建的新应用程序。现在由于 AppleScript 代码,它将对话框中输入的文本的结果复制到剪贴板...您现在可以将结果作为变量传递到 Automator 工作流程的其余部分。
将 Automator 工作流程保存为应用程序并在 Automator 之外运行新应用程序后,我能够成功地将文本粘贴到对话框中。
更新
选项 2
如果您将 Automator 工作流程保存为应用程序,则以下选项将不起作用。如果您将包含“询问文本”命令的 Automator 工作流程保存为工作流程而不是应用程序,则可以直接从菜单栏中的脚本菜单运行 Apple 脚本或 Automator 工作流程(无需启动 Automator 或脚本编辑器运行文件)。 此选项将允许您粘贴到“询问文本”对话框中。
为此,您需要确保在 Script Editor.app 的 General Preferences 中选中“在菜单栏中显示脚本菜单”选项。
为了能够直接在脚本菜单栏中访问这些脚本和工作流,需要将它们保存到此文件夹... /Users/YOUR SHORT NAME/Library/Scripts
我将所有 Apple 脚本和 Automator 工作流程保存在一个特定位置,该位置不在我的 /Users/YOUR SHORT NAME/Library/Scripts 文件夹中。我更喜欢在上下文菜单中使用 Finder 的“制作别名”命令来制作脚本或工作流程的别名文件,然后将该别名文件移动到我的 /Users/YOUR SHORT NAME/Library/Scripts 文件夹中。这样,我的所有脚本都保留在它们首选的原始位置,我可以随时删除别名文件,而原始文件保持不变。
您可以轻松找到正确的文件夹来放置脚本或工作流文件或这些文件的别名,如下图所示。
下一个动画展示了现在直接从脚本菜单运行工作流是多么容易。将文件作为工作流程而不是应用程序运行的好处是,只要 Automator 被授予在系统偏好设置中控制您的计算机的访问权限……就无需经历授予在 Automator 中创建的每个应用程序的过程, 访问权限。