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