Как вы изменяете выбранное напоминание в приложении Напоминания в 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