[ad_1]
I try to make my app scriptable. Therefore I created a simple .sdef file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="AppleScriptTester App">
<suite name="AppleScriptTest" code="AQds" description="SDEF for Test.">
<command name="testCommand" code="dosSEiao" description="TEST">
<cocoa class="TestCommand"/>
</command>
</suite>
</dictionary>
In the Info.plist
I have:
<key>NSAppleScriptEnabled</key>
<true/>
<key>OSAScriptingDefinition</key>
<string>ScriptDefinitions.sdef</string>
In Swift I added this func:
@objc(TestCommand) class TestCommand: NSScriptCommand {
override func performDefaultImplementation() -> Any? {
print("testCommand called")
return nil
}
}
So then I can call it via AppleScript:
tell application "AppleScriptTest"
testCommand
end tell
That’s working, the func is called. Now if I try it in JavaScript, it’s not working anymore (I get the error -1708):
var AppleScriptTest = Application("AppleScriptTest");
AppleScriptTest.testCommand();
What am I doing wrong?
[ad_2]