AppleScript 列表对话框中的键盘快捷键

Keyboard shortcuts in an AppleScript list dialog

我正在寻找一种方法来为 AppleScript 中的列表对话框中的项目分配键盘快捷键。

我正在使用以下内容来显示一长串文件夹名称,并且正在寻找一种简单的方法来 select 列表中的项目。

set selectedFolderName to {choose from list folderList}

当前列表显示如下:

Office
Personal
Projects
... 
Vendors

而且我必须使用光标键或鼠标在列表中向下导航到 select 一个项目。我希望能够显示:

a) Office
b) Personal
c) Projects
... 
m) Vendors

或:

Office
Personal
pRojects
... 
Vendors

然后我可以按 C 键(第一个示例)或 R 键(第二个示例)到 select 'Projects'。

我研究了 AppleScript 文档,并广泛搜索,但未能找到实现此目的的方法。

我不确定这是否是你想要的,但我使用下面的构造,这样我就可以按 "a",到 select 第一项,"b" 到 select 第二项,依此类推。

set litems to {"apples", "pears", "banana", "oranges", "plums", "grapes"}

set deli to "." & space & space
repeat with i from 1 to (count litems)
    set item i of litems to character id (i + 96) & deli & item i of litems
end repeat
log litems
set theRes to choose from list litems
(*a.  apples, b.  pears, c.  banana, d.  oranges, e.  plums, f.  grapes*)
set origItem to text 5 thru -1 of item 1 of theRes
log origItem
—> plums    

你问的第二个版本是不可能的。但是,首先是。此类功能没有内置任何内容,但您可以为其构建自己的子例程。您可以在列表项前加上字母或数字(我将使用数字,因为它更简单)。

on choose_from_list_with_shortcut(ls)
    -- prepend the choices with "1) "
    repeat with i from 1 to (count ls)
        set item i of ls to (i as string) & ") " & item i of ls
    end repeat

    set chosenItems to choose from list ls

    -- strip the prefixes from the chosen items
    repeat with i from 1 to (count chosenItems)
        set item i of chosenItems to text 4 thru -1 of item i of chosenItems
    end repeat

    return chosenItems
end choose_from_list_with_shortcut

另一种选择是直接开始输入。就像在 Finder 中一样,如果您键入字母 "pro,",列表将突出显示 "Projects."