Как создать всплывающее меню из имен моей группы контактов, используя AppleScript и Numbers? - PullRequest
0 голосов
/ 17 января 2020

Обратите внимание: сайт не разрешает мне публиковать этот вопрос, если я не отформатирую его неправильно, то есть две средние секции «кода», которые на самом деле не являются кодом. Я сделал все возможное, чтобы отредактировать его, исправить, и я прошу прощения, если форматирование плохое.

Я нашел и настроил два сценария, которые запускаются по отдельности. Это мой первый проект AppleScript, и я бы хотел, чтобы соединил их вместе, чтобы СДЕЛАТЬ ОДИН СЦЕНАРИЙ.

Я хочу, чтобы сценарий 2 использовал результат из сценария 1. например, установить menuItems на (Script 1 Result names)

Я создал фиктивную группу testgroup в моих Контактах. Всплывающее меню требует только названия. Я буду использовать соответствующие адреса электронной почты позже, в другом сценарии.

Надеюсь, это достаточно ясно. Заранее благодарим за помощь.

Сценарий 1

--returns Contacts testGroup’s names and email addresses

set myList to ""
tell application "Contacts" to repeat with p in people in group "testGroup"
    if emails of p is {} then
        set e to ""
    else
        set e to value of email 1 of p
    end if
    set myList to myList & name of p
end repeat

Сценарий 1 Результат требует анализа ...

"Joe BloggsMolly MousePeter Pan"

к этому. ..

{"Joe Bloggs", "Molly Mouse", "Peter Pan"}

, чтобы я мог использовать его в элементах меню сценария 2 ниже.

сценарий 2 ДОЛЖЕН использовать имена из результата сценария 1, например

-- Make Pop-Up Menu in Numbers spreadsheet which is already open.

set menuItems to {"Joe Bloggs", "Molly Mouse", "Peter Pan"}

tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        tell cell "A3"
            set value to item 1 of menuItems
            set the format to pop up menu
        end tell
    end tell
end tell


tell application "System Events"
    tell application process "Numbers"
        set frontmost to true
        tell window 1
            click radio button "Cell" of radio group 1
            repeat with i from 2 to (count menuItems)
                click button 1 of group 1 of scroll area -1
                keystroke (item i of menuItems)
            end repeat
        end tell
    end tell
end tell

1 Ответ

0 голосов
/ 17 января 2020

Первый скрипт просматривает элементы списка списка, чтобы создать строку, в то время как второй скрипт просто хочет получить список. Поскольку приложение «Контакты» выдаст вам список имен, первый сценарий вообще не нужен - menuItems второго сценария можно просто установить с помощью:

tell application "Contacts" to set menuItems to the name of people in group "testGroup"
...