子类化NSFontManager不起作用

时间:2012-06-27 15:52:10

标签: objective-c subclass nsfontmanager

我将NSFontManager子类化并覆盖“modifyFont:(id)sender” 然后我将xib文件中的NSFontManager类更改为新类。 我可以看到,该类已初始化,但永远不会调用覆盖的方法。虽然NSFontManager方法正常工作。

我错了什么?

#import "GFFontManager.h"

@implementation GFFontManager

-(id)init{
    if (self = [super init]) {
        //this is called
        NSLog(@"GFFontManager init");
    }
    return self;
}

-(void)modifyFont:(id)sender{
    //this is never called
    NSLog(@"Do something");
    [super modifyFont:sender];
}

@end

1 个答案:

答案 0 :(得分:2)

好的 - 这是它的工作原理:

我将以下内容添加到main.c中,它就像一个魅力!

#import <Cocoa/Cocoa.h>
#import "GFFontManager.h"

int main(int argc, char *argv[])
{
    [NSFontManager setFontManagerFactory: [GFFontManager class]];
    return NSApplicationMain(argc,  (const char **) argv);
}

致敬 - 杰拉尔德