Как я могу выбрать изображения из iPhoto в моем приложении Cocoa с помощью Applescript/Automator

У меня есть приложение для редактирования изображений Cocoa Mac, которое принимает несколько файлов изображений (jpeg, png, tiff, gif и т. д.) в качестве входных данных. Я хотел бы предоставить пользователю кнопку в моем приложении, чтобы получить эти входные файлы изображений из iPhoto.

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

Пожалуйста, предложите, как я могу этого добиться.

Отредактировано Abizern после комментария к моему ответу

Я бы предпочел не использовать сторонний фреймворк — есть ли способ сделать это с помощью рабочих процессов Applescript или Automator из моего приложения?


person AmaltasCoder    schedule 27.05.2011    source источник


Ответы (2)


Взгляните на браузер Karelia iMedia, который вы можете добавить в свой проект в качестве основы.

Не только изображения iPhoto, но и изображения на жестком диске, а также изображения с Flickr.

person Abizern    schedule 27.05.2011
comment
Я не хотел бы использовать стороннюю структуру, разве это не легко возможно с помощью рабочих процессов Apple script/automator? - person AmaltasCoder; 27.05.2011
comment
Зачем тогда ставить теги target-c и Cocoa в вопросе? - person Abizern; 27.05.2011

Вот сценарий, который откроет сам iPhoto и позволит пользователю выбрать несколько фотографий, а затем продолжить. Будем надеяться, что ваша программа сможет предоставить пользователю более элегантный немодальный способ сигнализировать о том, что он готов.

tell application "iPhoto"
    activate

    display alert "After you click OK, you will have 10 seconds to select some photos or albums"
    delay 10

    set paths to {}
    repeat with s in (get selection)
        set i to properties of s
        if class of i is album then
            repeat with p in photos of album (name of i)
                copy image path of p to end of paths
            end repeat
        else if class of i is photo then
            copy image path of i to end of paths
        end if
    end repeat

    log paths
end tell
person emclain    schedule 05.11.2013