2013-05-30 5 views

ответ

2

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