如何使用AppleScriptObjC创建类方法

时间:2012-12-11 15:46:38

标签: applescript-objc

我正在尝试使用ASOC覆盖类的+ initialize方法,但我找不到覆盖类方法的方法。它甚至可能吗?

不要对我正在谈论的语言产生任何混淆,这里有一些代码:

script FLAppDelegate
    property parent: class "NSObject"

    -- -- Class Methods -- --
    -- Insert code here

end script

2 个答案:

答案 0 :(得分:2)

我已经完成了一些测试,据我所知,虽然很奇怪,但使用AppleScriptObjC定义的方法都是类和实例方法。

假设我有一个AppleScriptObjC文件:

script iTunesController
   property parent: class "NSObject"

   on playpause()
      tell application id "com.apple.iTunes" to playpause
   end playpause
end script

在Objective-C方法中,两者都是:

- (void)callASOC
{
   iTunesControllerInstance = [NSClassFromString(@"iTunesController") new];
   [iTunesControllerInstance playpause];
   [iTunesControllerInstance release];
}

- (void)callASOC
{
   [NSClassFromString(@"iTunesController") playpause];
}

将调用AppleScriptObjC文件中的playpause处理程序。后一个公式将在编译时产生警告,但有效。

我无法找到任何确认或反驳此文件的文件。

答案 1 :(得分:0)

感谢@Friziab,他让我想起了NSClassFromString

所以我可以在另一个类(脚本)(NSView子类)的AppDelegate.applescript中调用AppleScriptObjC方法

我没有使用AppleScriptObjC所以可能有一种正确的方法,但这有效

 current application's  NSClassFromString("AppDelegate")'s popWindow()