*第4回目 Cocoaで画像読み込みと表示 [#zb088e68] CocoaでPNGファイルを読み込んで画面に表示します。 他にはJPGファイルも読み込んで表示ができます。 #ref(picture_draw01.png,,,100%) まずXcodeを起動してメニューの「ファイル」-「新規プロジェクト」を選択する。 そしてCocoa Applicationを選んで「次へ」ボタンを押す。 #ref(picture_draw02.png,,,100%) プロジェクト名を決めて「完了」ボタンを押す。 今回はpicture_drawというプロジェクト名にした。 #ref(picture_draw03.png,,,100%) pictute_drawのプロジェクトのフォルダに表示したいpngファイルをコピーする。 今回はsample.pngを使用。 #ref(picture_draw04.png,,,100%) ファイルとグループのResourcesを右クリックしてメニューを出し「追加」-「既存のファイル」を選ぶ。 #ref(picture_draw05.png,,,100%) sample.pngを選んで「追加」ボタンを押す。 **プログラム作成 [#p543fa08] 以下のプログラムを入力する。 ***PictureView.h [#k1490099] #import <Cocoa/Cocoa.h> @interface PictureView : NSImageView { } @end ***PictureView.m [#la3f6c1d] #import "PictureView.h" @implementation PictureView -(id)initWithFrame: (NSRect) frameRect { NSBundle *thisBundle; NSString *filepath; NSImage *img; [ super initWithFrame: frameRect ]; [ self setImageFrameStyle: NSImageFrameGrayBezel ]; thisBundle = [ NSBundle mainBundle ]; filepath = [ thisBundle pathForResource:@"sample" ofType:@"png" ]; img = [ [ NSImage alloc ] initWithContentsOfFile: filepath ]; [ self setImage: img ]; return self; } @end #author("2018-06-18T16:13:59+09:00","default:kuran","kuran") NSBundleはリソースに登録したファイルを管理するクラスのようです。 NSImageは画像の管理をするクラスのようです。 はっきり言って何をしているか良くわかりませんが NSBundleでPNGファイルの場所を調べてNSImageに読み込んでいると言うことのようです。 #ref(picture_draw06.png,,,100%) グループとファイルのOther sourcesを右クリックして「追加」-「既存のファイル」を選びます。 #ref(picture_draw07.png,,,100%) PictureView.h、PictureView.mを選んで「追加」ボタンを押します。 #ref(picture_draw08.png,,,100%) 何も変更せずに「追加」ボタンを押します。 **Interface Builderでの作業 [#y8ea29ab] #ref(picture_draw09.png,,,100%) XcodeのファイルとグループにあるMainMenu.nibをダブルクリックする。 するとInterface Builderが起動する。 #ref(picture_draw10.png,,,100%) ライブラリウインドウのViews & CellsにあるCustom Viewを選ぶ。 #ref(picture_draw11.png,,,100%) 作成中のWindowに上記で選んだCustom Viewをドラッグアンドドロップする。 またCustom Viewの大きさを調整する。 #ref(picture_draw12.png,,,100%) Class identityを先ほど作成したPictureViewに変更する。 **実行結果 [#if370169] #ref(picture_draw13.png,,,100%) [[前に戻る>プログラミング]]