我将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
答案 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);
}
致敬 - 杰拉尔德