NSFontPanel - Как обрабатывать закрытие

Мне нужно справиться с тем, что NSFontPanel был закрыт. Есть ли метод, который вызывается, когда это происходит? Спасибо за ответ.

1 ответ

Решение

NSFontPanel является подклассом NSPanel, который является подклассом NSWindow. NSWindow имеет много методов делегатов, которые будут информировать вас об изменениях в состоянии окна.

В вашем оконном контроллере или делегате приложения объявите соответствие NSWindowDelegate, затем получите панель шрифтов и установите его делегат для объекта контроллера. Наконец, реализовать -windowWillClose: в объекте контроллера, и предпримите все необходимые действия там.

Например:

/* AppDelegate.h */
@interface AppDelegate : NSObject <NSWindowDelegate>
@property (assign) IBOutlet NSWindow *window;
@end

/* AppDelegate.m */
@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
  NSFontPanel *fp = [[NSFontManager sharedFontManager] fontPanel:YES];
  fp.delegate = self;
}

- (void)windowWillClose:(NSNotification *)notification
{
  if(notification.object == [[NSFontManager sharedFontManager] fontPanel:NO])
  {
    /* Handle font panel close here */
    NSLog(@"Font panel closing");
  }
}

@end
Другие вопросы по тегам