AppleScript に関する限り、私はまったくの初心者です。だからここにいる...
これは私がこれまでに行ったことです:
- SimpleScriptingのアップル リファレンスを調べた
- IDENTICAL
.sdef
ファイルを実装 - 新しいプロパティを設定する
myname
- プリンシパル クラス (in
info.plist
) をppApplication
(から継承するメイン クラスNSApplication
)に設定します。 myname
プロパティへのアクセサを設定します
私のsdefファイル:
<?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="MyApplication Suite" code="PpRm" description="MyApplication Suite">
<class name="application" code="capp" description="MyApplication's top-level scripting object." inherits="application">
<cocoa class="ppApplication"/>
<property name="myname" code="PEnm" description="The name of the application" type="text" access="r">
<cocoa key="myname"/>
</property>
</class>
</suite>
</dictionary>
私のppApplicationクラス:
#import <Foundation/Foundation.h>
#import "ppCore.h"
@interface ppApplication : NSApplication {
ppCore* core;
}
@property (assign) ppCore* core;
@property (readonly) NSString* myname;
@end
#import "ppApplication.h"
@implementation ppApplication
@synthesize core;
- (void)awakeFromNib
{
[self setCore:[[ppCore alloc] init]];
}
/*******************************************************
*
* APPLESCRIPT SUPPORT
*
*******************************************************/
- (NSString*)myname
{
return @"DONE";
}
@end
さて、問題は次のとおりです。
次のスクリプトを実行しようとしているとき ( AppleScript Editorで)
tell application "myApplication"
myname
end tell
エラーが発生しthe variable myname is not defined
ます。
でも :
Xcode に戻って [ビルド設定] に戻り、製品名を - たとえば - myApplicationX に変更して再コンパイルすると、上記のコード (に変更tell application "myApplicationX"
) が機能します。
それで、私は何を間違っていますか?AppleScript エディタが、アクティブなアプリケーションのコンパイルではなく、以前のコンパイルと「対話」する可能性はありますか? 製品名を変更せずにこれに対処するにはどうすればよいですか?