-1

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&apos;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 エディタが、アクティブなアプリケーションのコンパイルではなく、以前のコンパイルと「対話」する可能性はありますか? 製品名を変更せずにこれに対処するにはどうすればよいですか?

4

1 に答える 1

2

上記のコードに問題はありませんでした。

(アプリケーションに重大な変更を加えた後)AppleScript Editorを再起動するだけで、うまくいきます。

于 2012-04-05T11:51:21.520 に答える