を作成していますが、フォントを選択してもメソッド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:
アプリケーション デリゲート (レスポンダー チェーンにあるはず) に同じメソッドを入れましたが、どちらも呼び出されません。私はどこかでステップを逃していますか?