2013-05-30 125 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