AppleScript, чтобы получить активный список в напоминаниях?

Может ли кто-нибудь помочь мне отобразить активный список в приложении «Напоминания» в OS X?

Согласно словарю AppleScript для напоминаний, приложение имеет свойство «список по умолчанию», которое представляет собой «список, активный в данный момент в приложении «Напоминания».

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

Мое приложение состоит в том, чтобы создать триггер Keyboard Maestro для запуска AppleScript для печати списка, над которым я сейчас работаю, но не похоже, что приложение «Напоминания» работает так, как описано в его словаре. (Я временно использовал обходной путь: скрипт выводит всплывающее меню со списком всех списков, чтобы я мог выбрать тот, который хочу напечатать, но это неэффективно и неэлегантно).

Спасибо!


person user2831272    schedule 30.09.2013    source источник
comment
не могли бы вы опубликовать код, который у вас есть до сих пор, таким образом мне не нужно переписывать все, что вы уже написали   -  person mcgrailm    schedule 30.09.2013
comment
кажется, это действительно плохое приложение ... я не думаю, что оно работает должным образом, не говоря уже о том, чтобы манипулировать с помощью applescript   -  person mcgrailm    schedule 30.09.2013


Ответы (1)


Да, вы можете, но вам придется использовать плохой сценарий графического интерфейса. И в плохом смысле. Смотреть:

--Do some GUI scripting to get the decription of a specific group
tell application "Reminders" to activate
tell application "System Events"
    tell process "Reminders"
        tell window "Reminders"
            tell splitter group 1
                tell group 1
                    set des to get description
                end tell
            end tell
        end tell
    end tell
end tell

--This description is in the format "Viewing MyList, 1 reminder" so get the part to the "," from des.
set text item delimiters to ","
set texitems to text items of des
set firstPart to get text item 1 of texitems

--Setting the delimiters back
set text item delimiters to ""

--Jump to charcter 9 of firstPart then converting to text
set listname to characters 9 thru end of firstPart as text

--Now we know the name of the current list, so do whatever you want:
tell application "Reminders" to get list listname

Это работает. Но только если напоминания открыты. И если Apple изменит структуру напоминаний...

person idmean    schedule 30.09.2013
comment
фу... похоже, это единственный способ - person mcgrailm; 30.09.2013