Как мне создать электронную таблицу Numbers, используя target-c? - PullRequest
3 голосов
/ 12 июня 2010

Я пишу приложение Какао, и я хотел бы создать электронную таблицу Numbers из моего приложения, используя Scripting Bridge.Я сгенерировал файл Numbers.h и связал ScriptingBridge.framework в соответствии с указаниями Документация Apple .Ниже приведен код, который я использую, чтобы попытаться просто создать документ Numbers и сохранить его.

NSString *path = @"/Users/username/Desktop/Test.numbers";

NumbersApplication *numbers = [SBApplication applicationWithBundleIdentifier:@"com.apple.iWork.Numbers"];

[numbers activate];

NumbersDocument *document = [[[numbers classForScriptingClass:@"document"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:project.title, @"name", nil]];

[[numbers documents] addObject:document];

[document saveAs:nil in:[NSURL URLWithString:path]];

Код компилируется и запускается, и когда я пробую метод saveAs: in:, я получаю следующую ошибку:

- [SBProxyByClass saveAs: in:]: объект еще не добавлен в контейнер;селектор не распознан [self = 0x2005912e0]

Есть ли что-то еще, что я должен сделать, кроме добавления документа в массив [numbers documents]?

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

Ответы [ 2 ]

1 голос
/ 12 июня 2010

Эхх, скриптинг чисел с SB;два черных искусства по цене одного.Я бы предложил сначала попытаться сделать это в AppleScript, чтобы немного сузить проблему.

Если в AS он тоже не работает, значит, вы либо неправильно сформулировали команды, либо проблема в Numbers.Поскольку большинство сценариев приложений используют AppleScript, вам будет проще получить помощь, если вы сможете представить код, который они распознают.

Если это работает, то либо ваш перевод команд в ObjC неверен, либопроблема в СБ.Наличие рабочего примера в AS обеспечит отправную точку для выяснения, где что-то идет не так.

Вы также можете взглянуть на objc-appscript , который предоставляет более надежную, менее запутанную альтернативу SB.Его инструмент ASTranslate позволяет легко переводить рабочие команды AS в синтаксис ObjC.

0 голосов
/ 23 декабря 2010

Номера еще не поддерживают создание документов с помощью Applescript. Вы должны использовать сценарии GUI. Предполагается, что новая версия Numbers выйдет 6 января 2011 года и (будем надеяться) исправит ограниченную поддержку Applescript.

...