今回の題材も「ヒレガス本」からです。第12章、P204のチャレンジ問題から派生させ、オリジナルな”Aboutパネル”の作成をやってみました。
チャレンジ問題自体は第12章の”Preferenceパネル”を作る方法をトレースすることで解けるのですが、出来上がったのっぺらぼうの”Aboutパネル”を肉付けして、見栄えをよくする方法でつまずいてしまいます。
元々標準で用意されている”Aboutパネル”を解析してみたところ、”orderFrontStandardAboutPanel:”というメソッドが使用されています。そこでこれから標準パネルの構造を調べて流用する方法を試みたのですが、よく判らず終い。結局、標準で用意されている”Aboutパネル”そのものをカスタマイズする方法を調査してみました。
以下のメソッドを”AppController.h”で宣言して、”AppController.m”で実装します。ポイントとなるのは、”orderFrontStandardAboutPanelWithOptions"というメソッドです。
”InterfaceBuilder でメインメニューの”About NewApplication”と”AppController”オブジェクトを接続して以下の”showAboutPanel:”メソッドを選択、接続します。
メソッドの内容ですが、VOXYの写真は”images-1”というファイル名で予め”resources”に保存しておきます。今回はpng形式を使いましたが、jpgやgif形式なんかでもいいんでないでしょうか。でも普通はアイコンのイメージを使うんでしょうね。イメージ以外の部分については、変数optionsのキーとの関係と、上記パネル写真での文字の表示位置をみて、なにがどうなっているか確認してください。
また、”Aboutパネル”の下半分のスクロールする部分の記述については、今回はやっていませんが、予め用意されている”cridits.rtf”ファイルを編集すると内容の書き換えが可能です。
- (IBAction)showAboutPanel:(id)sender {
NSDictionary *options;
NSImage *img;
img = [NSImage imageNamed: @"images-1"];
options = [NSDictionary dictionaryWithObjectsAndKeys:
@"1.0", @"Version",
@"Super App", @"ApplicationName",
img, @"ApplicationIcon",
@"Copyright 2009-2010, YanSoftware", @"Copyright",
@"Super App v1.0", @"ApplicationVersion",
nil];
[[NSApplication sharedApplication] orderFrontStandardAboutPanelWithOptions:options];
}
NSDictionary *options;
NSImage *img;
img = [NSImage imageNamed: @"images-1"];
options = [NSDictionary dictionaryWithObjectsAndKeys:
@"1.0", @"Version",
@"Super App", @"ApplicationName",
img, @"ApplicationIcon",
@"Copyright 2009-2010, YanSoftware", @"Copyright",
@"Super App v1.0", @"ApplicationVersion",
nil];
[[NSApplication sharedApplication] orderFrontStandardAboutPanelWithOptions:options];
}
そんな訳で、「ヒレガス本」P204のチャレンジ問題からかなり逸脱してしまいましたが、どうでしょうか。
2 件のコメント:
午前中に「ホワイトディのお返し」を買いに行って、午後からこの記事のネタをくっていたのだ。まだ少し風邪っぽいので、昼寝もしたぜ。
だいたいWindowsユーザーには、アバウトパネル自体なんのこっちゃわからんのちゃうんか。どうやろ?
コメントを投稿