【问题标题】:Enabling keyboard shortcuts to confirm Dialogs in AppleScript启用键盘快捷键以确认 AppleScript 中的对话框
【发布时间】:2020-02-23 18:40:11
【问题描述】:

我正在寻找一种允许用户使用键盘快捷键完成对话框条目的方法。这可能吗?

Other questions 讨论了将快捷方式分配给 AppleScript 对话框中的选项,而不是分配给“继续”/“确定”等按钮。

主要困难在于我使用的是多行文本输入表单,因此 Enter 按钮只是创建一个新行,而不是像通常那样定位默认按钮。我希望 cmdenter 可以分配给默认按钮。

定义相关对话框的脚本行是:

set theResponse to display dialog "Enter tasks:" default answer "





" buttons {"Cancel", "Continue"} default button "Continue"

【问题讨论】:

    标签: dialog applescript keyboard-shortcuts interaction


    【解决方案1】:

    美国英语 MacBook Pro上从脚本编辑器运行您的AppleScript 代码 >,无论是否输入了内容,fnenter 按下继续按钮。

    当连接到 MacBook Pro美国英语 Apple Magic Keyboard 和我假设它所连接的任何 美国英语 Mac 都会这样做。我目前只有 MacBook Pro 可供测试。


    ma​​cOS 中,默认情况下,在此用例中按 tab 不会在 控件之间移动 作为 System Preferences > Keyboard > Shortcuts 中的控制设置未设置为允许它作用于所有控件

    您必须选择以下选项之一,具体取决于正在运行的 macOS 版本,以便在所有 上使用 tab key >控件

    如果你看到:

    全键盘访问:在窗口和对话框中,按 Tab 键可在以下之间移动键盘焦点:

        (•) 文本框和列表
    ( ) 所有控件

    选择: (•) 所有控件

    如果你看到:

    []使用键盘导航在控件之间移动
    按 Tab 键向前移动焦点,按 Shift Tab 向后移动焦点。

    检查: [√]使用键盘导航在控件之间移动

    完成后,可以使用tabtabenter继续 按钮,由OP中显示的代码生成的对话框。


    旁注:您也可以尝试 fncommandenter,因为这是在 VMware 中所必需的 ma​​cOS Catalina 我也在其中测试过的虚拟机。

    【讨论】:

    • 多么奇怪。 fn + enter 不起作用,至少当文本输入是多行时。它仍然只添加了一个新行。但是,tab 完全控制解决方法很聪明。我知道它存在,但在这里没有想到。谢谢!
    • @ryanjamurphy、fn+enterfn+command+enter 确实可以使用您的 AppleScript code 在我的 MBP 上工作,这会产生多行文本字段对话框。这可能与使用美式英语键盘和布局有关,甚至可能与 macOS 的版本有关,即我测试的系统上的 macOS High Sierra 以及 VMware 虚拟机中的 macOS Catalinatab+tab+enter 仅在我的回答中提到的更改默认设置后才起作用。无论如何,我很高兴我提供的信息对您有所帮助,谢谢。
    • @ryanjamurphy,您使用的是什么版本的 macOS 以及键盘和布局?
    • macOS Catalina,我尝试了加拿大英语(我的默认)和美国英语。也许这是我正在使用的外接键盘。哦,好吧——全键盘控制对我来说很好用。
    【解决方案2】:

    ⌘-Enter(在数字键盘上)按下 Continue

    【讨论】:

    • 谢谢——在多行输入中这是真的吗?遗憾的是,我没有数字键盘来测试它。
    • @ryanjamurphy - 在某些苹果键盘上, + 组合键与 + return 基本相同。切换键盘here 的各种语言,显着的区别似乎是“美国英语”,它表示带有单词return 键。 return 都是 applescript 识别为 keycode 36
    • 谢谢,@RobC。有趣的。我将键盘语言从加拿大英语切换到美国,但根据KeycastrEnter 键仍返回
    【解决方案3】:

    如果您在多行文本字段中,请按Tab 键,以便将焦点放在文本字段以外的某个元素上。然后Enter 键应该正确路由到对话框的默认关闭按钮。

    【讨论】:

    • 是的,但这在 AppleScript 对话框的多行输入字段中不起作用。
    • 我用您提供的代码对其进行了测试,它确实工作。
    • 奇数。它一定是我正在使用的外接键盘,不知何故。
    • 我只是用不同的应用程序 (Safari) 和不同的键盘对其进行了测试,但无济于事。小时。
    • 嗯。它可能是我机器上的设置,或者依赖于应用程序。很奇怪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多