Быстро и грязно, но это работает (Office 2008)
tell application "Microsoft Entourage"
set contactList to {}
set lastContact to (count contacts)
repeat with thisContact from 1 to lastContact
set theContact to item thisContact of contacts
set end of contactList to (first name of theContact & " " & last name of theContact)
end repeat
set contactSelected to (choose from list contactList with prompt "Please select a contact." without multiple selections allowed) as text
if (contactSelected is not "False") then
display dialog contactSelected
end if
end tell
По сути, сценарий состоит из двух частей: получение имен контактов и представление информации.Получить контакты легко, потому что contacts
является собственностью самого приложения.Выполнение этого в 40+ контактах занимает всего секунду.
Представление данных и выбор не так очевидны.Данные для представления имеют в виде строки.Честно говоря, я забываю, почему у меня as text
болтается с конца, но я, кажется, помню, что делать это было проще, если бы все обрабатывалось как какая-то строка.Как только выбор будет подтвержден - возвращение «False» означает, что пользователь нажал кнопку cancel
, - вы сможете продолжить со строкой, в которой я поместил display dialog
.К сожалению, вы не получите номер строки или что-нибудь удобное, как это.Это просто не работает таким образом, поэтому вам придется немного поработать, чтобы вернуться к соответствующему contact
самому объекту.
Добавить соль по вкусу ...