フォントダイアログの使い方

Cocoaに関するヌマタメモ
2008年11月29日 23:10

主な使い方は、以下の通り。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 としておく必要がある。

参考資料

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/68