Краткий ответ: вы не можете открывать документы в Photoshop с помощью Scripting Bridge.
Документы Apple действительно объясняют это как есть. Все классы должны иметь контейнер, который является изменяемым массивом, к которому они должны быть добавлены, прежде чем с ними можно будет работать, как показано в сгенерированном заголовке ...
@interface photoshopCS4Application : SBApplication
- (SBElementArray *) documents;
- (SBElementArray *) fonts;
- (SBElementArray *) notifiers;
... и это полный список доступных нам контейнеров верхнего уровня. Команда open
требует, чтобы a photoshopCS4OpenOptions
были сгенерированы и заполнены. Поскольку API не предоставляет массив для хранения вновь созданного объекта photoshopCS4OpenOptions, мы не можем использовать вновь созданный объект photoshopCS4OpenOptions
. Поэтому мы не можем создать целевой документ и по расширениям не можем использовать команду open
в Scripting Bridge. То же самое можно сказать обо всех командах, которые требуют какой-то опции объекта.
Единственный обходной путь, который я выбрал, - это открыть документ с собственным Applescript, вызванным из Cocoa, или objc-appscript, а затем проанализировать массив documents
, чтобы найти только что открытый. Он не идеален, но в то же время не является Scripting Bridge, поскольку требует, чтобы разработчики приложений писали свои API-интерфейсы сценариев очень специфическим способом, который не является родным для инфраструктуры OSA.