Мне нужно обработать, что NSFontPanel был закрыт. Есть ли какой-нибудь метод, который называется, когда это происходит? Thx для ответа.NSFontPanel - Как обрабатывать закрытие
0
A
ответ
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