0

NSFontPanel が閉じられたことを処理する必要があります。それが起こったときに呼び出されるメソッドはありますか?お返事Thxです。

4

1 に答える 1

2

NSFontPanel は、NSWindow のサブクラスである NSPanel のサブクラスです。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
于 2013-05-30T18:38:09.317 に答える