如何使用AppleScriptObjC创建类方法



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

为了不让任何混淆我正在谈论的语言,这里有一些代码:

script FLAppDelegate
    property parent: class "NSObject"
    -- -- Class Methods -- --
    -- Insert code here
end script

我已经做了一些测试,据我所知,虽然很奇怪,但使用 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 处理程序。后一种公式将在编译时生成警告,但有效。

我找不到任何证实或反驳这一点的文件。

感謝讓我想起NSClassFromString的@Friziab

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

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

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

最新更新