を作成していますが、フォントを選択してもメソッドNSFontPanelが呼び出されません。changeFont:
NSWindowControllerサブクラスで定義されたこれらのメソッドがあります。
- (IBAction)showFontPanel:(id)sender {
[[NSFontPanel sharedFontPanel] makeKeyAndOrderFront:self];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSFont *theFont = [NSFont fontWithName:[prefs stringForKey:iepFontName] size:[prefs floatForKey:iepFontSize]];
[[NSFontPanel sharedFontPanel] setPanelFont:theFont isMultiple:NO];
[[NSFontManager sharedFontManager] setDelegate:self];
}
- (void)changeFont:(id)sender {
NSLog(@"changeFont");
}
- (NSUInteger)validModesForFontPanel:(NSFontPanel *)fontPanel {
return NSFontPanelFaceModeMask | NSFontPanelSizeModeMask | NSFontPanelCollectionModeMask;
}
正しいフォントとサイズが選択された状態でフォント パネルが表示され、モードのみが で有効になってvalidModesForFontPanel:いますが、別のフォントを選択すると、changeFont:メソッドが呼び出されません。私の理解では、changeFont:アクション メッセージはレスポンダー チェーンに送信されます。テストとして、changeFont:アプリケーション デリゲート (レスポンダー チェーンにあるはず) に同じメソッドを入れましたが、どちらも呼び出されません。私はどこかでステップを逃していますか?