ホーム

トップ
準備
Become An Xcoder

練習問題0
練習問題1
練習問題2
練習問題3
練習問題4
練習問題5
練習問題6
練習問題7
練習問題8
練習問題9
練習問題10
練習問題11
練習問題12
練習問題13
練習問題14
練習問題15

C言語補習1
C言語補習2
C言語補習3

推薦図書
ブックマーク

最後に

掲示板

Cocoa Docs

自作ソフトいろいろ




修正日: 07/10/19  

練習問題11  

 CalcBMIみたいなのを作ってみよう! その7


 とりあえず最低限必要そうな機能は一通り揃ったようなので、最後に仕上げとしてアイコンを付け加えてみましょう。
 まず最初にアイコンの準備をします。アプリケーションやファイルのアイコンは「.icns」という拡張子のファイル形式で準備します。ファイルを作るにはまず元になる画像を一般的な画像フォーマット(jpegやpng、tiffなど)で準備します。次にDeveloper Toolsのアプリケーションフォルダに入っている「Icon Composer」というアプリ(/Developer/Applications/Utilities/Icon Composer.app)を起動し、各四角に準備したイメージファイルをドラッグして保存すれば完成です。



 サンプルとしてWakabaさん制作のCalcBMI用アイコンのファイルを置いておきますので、ダウンロードしてアイコンを作ってみてください。




 次にアイコンをXcodeのプロジェクトに登録して、アプリケーションのアイコンとして認識されるように設定します。まずは作ったicnsファイルをプロジェクトフォルダの適当な所に移動してください。移動したらCalcBmiプロジェクトファイルを開き、icnsファイルを「グループとファイル」の「Resources」の下にドラッグして追加します。



 追加したら「ターゲット」の下の「CalcBmi」を選択し、「ファイル」メニューの「情報を見る」を選択して、アプリケーションの設定ウィンドウを開きます。ウィンドウ内の「プロパティ」タブを選択し、「アイコンファイル」の欄にアイコンのファイル名を入力するか、先ほどドラッグして追加したicnsファイルを欄の中にドラッグして、ファイル名を入力します。これで設定完了です。



 あとはいつものようにアプリケーションをビルドすることでアイコンがちゃんとついた立派なアプリケーションが完成します。


 これだけではつまらないので、今回はもう一工夫してみます。アプリケーションの状態にあわせてDockのアイコンを変更します。まずは画像を準備します。今回はわざわざicnsファイルを作らないで普通のpngファイルなどを準備するだけで大丈夫です。こちらにサンプルを置いておきます。アプリケーションアイコンと同じくWakabaさん制作です。
 ファイルを準備したらアプリケーションアイコンと同様にドラッグアンドドロップでXcodeプロジェクトウィンドウのResourcesの下に追加します。



 次にプロジェクトに追加したイメージファイルのデータを、プログラム中で取り出してDockに表示する手順です。まずはイメージの取り出し方です。

NSImage *anIcon; anIcon=[NSImage imageNamed:@"blue.icns"];


 画像を取り扱うにはその名の通りNSImageというクラスを使います。そしてプロジェクトに追加してあるイメージファイルを取得するには「+ (id)imageNamed:(NSString *)name」というNSImageクラスのクラスメソッドを利用します。引き数「name」に読み込みたいイメージファイルの名前をNSStringで渡してやれば、アプリケーションバンドルの中から該当するファイルを探して読み込み、NSImageオブジェクトとして返してくれます。簡単ですね。
 次にNSImageをDockに表示する方法です。

[NSApp setApplicationIconImage:anIcon];


 たった一行です。最初の「NSApp」はアプリケーション本体を司るオブジェクトで「NSApplication」クラスのインスタンスです。一見クラスメソッドのようにも見えますが、クラス名ではありません。グローバル変数といって、プログラム中どこからでも呼び出すことができる特殊な変数です。例えば

[NSApp terminate:nil];


 と書くとプログラムからアプリケーションを終了させることができます。このNSAppの「setApplicationIconImage:anIcon:」メソッドに、Dockに表示させたい画像のNSImageインスタンスを渡せばDockの内容が変わります。


 ということでここで問題です。BMI計算の結果にあわせて、痩せ過ぎなら青、太り気味なら黄色、肥満なら赤とDockのアイコン表示が変わるように変更してみてください。


解答はこちら