I will begin by saying that I'm a complete newbie as far as AppleScript goes. So here you are...
This is what I've done so far :
.sdef
filemyname
info.plist
) to ppApplication
(my main class inheriting from NSApplication
)myname
propertyMy sdef file :
<?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>
My ppApplication class :
#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
When I'm trying to run the following script (in AppleScript Editor)
tell application "myApplication"
myname
end tell
I'm getting a the variable myname is not defined
error.
If I go back to Xcode, Build Settings and change the Product Name to - let's say - myApplicationX and recompile, then the above code (changing it to tell application "myApplicationX"
) DOES WORK.
So, what am I doing wrong? Is it possible that the AppleScript Editor doesn't "talk" to my active compilation of the application, but to a previous one? How could I deal with this WITHOUT changing my Product Name?
There was NO issue with the above code.
Simply restarting AppleScript Editor (after making any serious changes to the application) does the trick.