title: Why isn't changeFont: being called from my NSFontPanel?
body: <p>I'm creating an <code>NSFontPanel</code> but selecting a font doesn't call the <code>changeFont:</code> method.</p>
  
  <p>I have these methods defined in an <code>NSWindowController</code> subclass:</p>
  
  <pre><code>- (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;
  }
  </code></pre>
  
  <p>The font panel appears with the correct font and size selected and only the modes enabled in <code>validModesForFontPanel:</code>, but when I select a different font, the <code>changeFont:</code> method doesn't get called. My understanding is that the <code>changeFont:</code> action message gets sent up the responder chain. As a test, I put an identical <code>changeFont:</code> method in my application delegate (which is supposed to be in the responder chain) but it isn't getting called either. Am I missing a step somewhere?</p>