主な使い方は、以下の通り。NSFontManager の setDelegate: メソッドでフォント変更通知を受け取るインスタンスを指定して、フォントダイアログを表示する。
- (IBAction)myAction:(id)sender {
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setSelectedFont:/*変更前のフォント*/ isMultiple:NO];
[fontManager setDelegate:self];
[fontManager orderFrontFontPanel:self];
}
delegate に指定したインスタンスでは、changeFont: メソッドなどを実装する。
- (void)changeFont:(id)sender {
NSFont *font = [sender convertFont:/*任意のフォント(なんでもいい)*/];
// ....
}
注意すべき点は、delegate へのメッセージは delegate のオブジェクトに直接送られるわけではないということである。delegate へのメッセージは、最前面のウィンドウの First Responder に送られ、最前面のウィンドウを経由して、最前面のウィンドウの delegate へと送られる。大抵の場合、delegate に Responder でないオブジェクトを指定する場合には、関連するウィンドウの delegate としておく必要がある。
コメントを書く