2

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];
}

@終わり

4

1 に答える 1

2

OK - これがどのように機能するかです:

以下を 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);
}

よろしく - ジェラルド

于 2012-06-27T20:06:19.737 に答える