간단한 Objective-C 응용 프로그램을 작성하려고합니다. 상태 표시 줄에 단어를 표시하고 AppleScript를 통해 단어를 업데이트 할 수있는 응용 프로그램이 필요합니다. 솔직히 말해서, 나는 AppleScript에 대해 거의 알지 못하며 Objective-C에 대해서는 거의 모른다. 하지만 메뉴 항목이있는 메뉴 모음 응용 프로그램을 가져 오는 데 2 시간 밖에 걸리지 않았고 "종료"와 같은 핵심 AppleScript 명령에 응답하기 때문에 어렵지 않을 수 있습니다. 따라서이 방법의 95 %에 해당합니다. 불행히도 다음 6 시간 동안이 애플리케이션에 AppleScript를 통해 가져다 놓을 수있는 간단한 속성을 제공하는 방법을 찾으려고했습니다. foobaz
방법은 내가 읽을 수있는 속성을 만들려고 노력 사용 된 하나 (*window
은 내가 엑스 코드와 관련이없는 주어진 된 상용구의 일부입니다NSApplicationDelegate를 사용할 때 Apple의 SimpleScripting 예제가 작동하지 않습니다.
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
IBOutlet NSMenu *statusMenu;
NSStatusItem *statusItem;
}
@property (assign) IBOutlet NSWindow *window;
- (NSString*) foobaz;
@end
: 여기
내 .H 코드 당면 문제에). 여기 내 .sdef 파일입니다 https://developer.apple.com/library/mac/#samplecode/SimpleScripting/Introduction/Intro.html는 그러나, 나는 스크립트 편집기에서이 작업을 실행하려고했습니다 :
를 그냥 여기에 애플의 SimpleScripting 예처럼 설정 그래서있어<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary xmlns:xi="http://www.w3.org/2003/XInclude">
<xi:include
href="file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef"
xpointer="xpointer(/dictionary/suite)"/>
<suite name="StatusMenuApp suite" code="smas"
description="StatusMenuApp specific classes.">
<class name="application" code="smaa" inhereits="application"
description="Application object.">
<cocoa class="AppDelegate"/>
<property name="foobaz" code="smas" type="text" access="r"/>
</class>
</suite>
</dictionary>
tell application "StautsMenuApp"
properties
end tell
그리고 난 그냥 사용자 지정 속성은 내가 그것을 실행하는 핵심 속성과 함께 표시되는 애플의 예와는 달리 전혀 foobaz
없이 언급, 함께, 핵심 속성의 목록을 얻을.
나는 이것에 백가지 변형을 시도하고 백 가지의 예제를 읽었지만 아무 것도 얻을 수 없다고 느낀다. 어떤 도움을 주셔서 감사합니다.