我正在尝试使用ASOC覆盖类的+ initialize方法,但我找不到覆盖类方法的方法。它甚至可能吗?
不要对我正在谈论的语言产生任何混淆,这里有一些代码:
script FLAppDelegate
property parent: class "NSObject"
-- -- Class Methods -- --
-- Insert code here
end script
答案 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()