2010-06-11 4 views
3

저는 Cocoa 응용 프로그램을 작성 중이며 Scripting Bridge를 사용하여 응용 프로그램에서 Numbers 스프레드 시트를 생성하고 싶습니다. numbers.h 파일을 생성하고 Apple's Documentation에 지시에 따라 ScriptingBridge.framework를 연결했습니다. 다음은 단순히 Numbers 문서를 만들고 저장하는 데 사용하는 코드입니다.objective-c를 사용하여 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]]; 

코드 및 실행 컴파일 나는 다른 이름으로 저장을하려고하면에 : 방법 나는 다음과 같은 오류가 발생합니다 :

- [SBProxyByClass 다른 이름으로 저장 :에 :] : 개체가 아직 컨테이너에 추가되지 않은 ; 선택기가 인식되지 않음 [self = 0x2005912e0]

[numbers documents] 배열에 문서를 추가하는 것 외에 다른 작업이 있습니까?

AppleScript를 사용할 수는 있지만 가능한 경우 스크립팅 브리지를 사용하고 싶습니다.

답변

1

아, Numbers는 SB로 스크립팅합니다. 하나의 가격에 두 개의 흑인 예술. 문제를 조금 좁히기 위해 AppleScript로 먼저 해보려는 것이 좋습니다.

AS에서도 깨진 경우 명령을 잘못 표현했거나 Numbers에 문제가 있습니다. 대부분의 응용 프로그램 스크립터는 AppleScript를 사용하기 때문에 인식 할 수있는 코드를 제시하면 도움을받는 것이 더 쉽습니다.

작동하는 경우 ObjC에 대한 명령 번역이 잘못되었거나 SB에 문제가 있습니다. AS에서 작동 예제를 사용하면 상황이 잘못 될 수있는 곳을 파악할 수있는 출발점이됩니다.

SB의 대안보다 덜 신뢰할 수 있고 난독 화 된 objc-appscript을 볼 수도 있습니다. ASTranslate 도구를 사용하면 작업 AS 명령을 ObjC 구문으로 쉽게 변환 할 수 있습니다.

0

숫자는 아직 AppleScript로 문서를 만드는 것을 지원하지 않습니다. GUI 스크립팅을 사용해야합니다. Numbers의 새 버전은 2011 년 1 월 6 일에 출시 될 예정이며, (잘하면) 심각한 제한된 AppleScript 지원을 수정합니다.