Как вы изменяете выбранное напоминание в приложении Напоминания в OS X с AppleScript

Название вопроса говорит само за себя. Я в основном пытаюсь установить дату завершения уже созданного напоминания с помощью AppleScript (см. Пост, который я создал здесь для получения дополнительной информации). В настоящее время я могу сделать новое напоминание со сроком исполнения, используя код AppleScript:

tell application "System Events" to set FrontAppName to name of first process where frontmost is true
if FrontAppName is "Reminders" then
    tell application "Reminders"
        set duedate to (current date) + (2 * days)
        make new reminder with properties {name:"New Reminder", due date:duedate}
    end tell
else
    display dialog "failed to make new reminder!"
end if

Но понятия не имею, как установить newReminder в "текущее напоминание". Есть идеи? Все, что у меня есть для кода:

tell application "System Events" to set FrontAppName to name of first process where frontmost is true
if FrontAppName is "Reminders" then
    tell application "Reminders"
        set currentReminder to current reminder
        set due date of currentReminder to current date
    end tell
else
    display dialog "failed to make new reminder!"
end if

Добавление даты выполнения (не напоминать мне дату) уже давно требуется в сообществе OS X, для которого я хотел бы сделать разумный обходной путь. В настоящее время это не так просто установить, понятия не имею, почему. Смотрите сообщения на форуме, такие как: https://discussions.apple.com/thread/4142949?start=0&tstart=0 https://discussions.apple.com/message/24428695

Буду признателен за любую оказанную помощь.

2 ответа

Я не думаю, что есть какой-то способ получить выбранное напоминание. С выделенным выделением или с точкой вставки. Возможно, вы можете использовать, чтобы получить напоминание о совпадении определенного свойства.

tell application "Reminders"
    try
-- select a reminder modified in the last 5 minutes
        set thisReminder to last reminder whose modification date is greater than ((current date) - 300)
    on error
-- if not one, then select the last reminder in a particular list
        set thisReminder to last reminder of (first list whose name is "Office") whose completed is false  -- can leave off the list filter to just get last created reminder
    end try
end tell

set due date of thisReminder……

Этот сценарий позволяет вам создать напоминание, а затем программно установить дату исполнения напоминания, которое вы создали за последние 5 минут (конечно, может укоротить окно)

Я не уверен, насколько надежным это будет, вам нужно много тестировать, но, похоже, последнее напоминание является последним в списке, когда вы "получаете свойства". Итак, вы можете попробовать что-то вроде этого:

tell application "Reminders"
    activate
    set myRemList to every reminder as list
    set myReminder to item -1 of myRemList
    set due date of myReminder to (current date) + (2 * days)
end tell
Другие вопросы по тегам