hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

Hello Cocoa World!

今回の目的

タイトルにある通り、定番の"Hello World!"を出力させながらCocoaについて勉強します。
これからアプリケーション開発を行う上での土台になると思うので、馬鹿丁寧に書きます。

Xcode起動

Xcodeを使ってアプリケーション開発を進めていきます。
なので、まずXcodeを起動させます。

プロジェクト作成

Xcodeから [ファイル] → [新規プロジェクト] メニューを選択します。
すると、新規プロジェクトウィンドウが開かれるので、[Mac OS X] → [Application] カテゴリ下にある [Cocoa Application] を選択します。
プロジェクト名は "Hello World" とでも付ければ良い。

クラスの作成

[ファイル] → [新規ファイル] メニューを選択します。
[Mac OS X] → [Cocoa] カテゴリ下にある [Objective-C class] を選択します。
クラス名は "AppController" とでも付けておく。
このとき、AppController.h も作成し、これらをClassesのグループへ移動しておきます。

クラスの宣言

AppController.h を編集します。

#import <Cocoa/Cocoa.h>


@interface AppController : NSObject {
	IBOutlet id textField;
}
- (IBAction)sayHello:(id)sender;

@end

Interface Builder起動

GUIのデザインをおこないます。

xibファイル

[グループとファイル] → [Resources] ディレクトリ下にある [MainMenu.xib] ファイルを開きます。

Interface Builderのウィンドウ

ライブラリで [Cocoa] → [View&Cells] → [Inputs&Values] に存在するテキストフィールドをウィンドウへドラッグして追加します。
次にライブラリで [Cocoa] → [View&Cells] → [Buttons] に存在するボタンをウィンドウへドラックして追加します。

クラスのインスタンス

ライブラリで [Cocoa] → [Objects&Controllers] → [Controllers] に存在するObjectという青いキューブを、xibウィンドウにドラッグして追加します。
次に、Objectを選択した状態で、インスペクタウィンドウの左から6番目のIdentityタブを選択します。Classコンボボックスから [AppController] クラスを選択します。
これでAppController がインスタンス化されます。

アウトレットとアクションの接続

これから関連付けをおこないます。

textFieldアウトレット接続

[AppController] のインスタンスを選択します。そして、コントロールキーを押しながらドラックし、ウィンドウに配置したテキストフィールドまで持っていき、ドロップします。
黒いウィンドウが表示されるので、textFieldを選択します。
これで、アウトレット接続完了です。

sayHello:アクション接続

ウィンドウに配置したボタンを選択します。そして、紺とロルキーを押しながらドラックし、[AppController] のインスタンスまで持っていき、ドロップします。
黒いウィンドウが表示されるので、sayHello:を選択します。
これで、アクション接続完了です。

AppControllerの実装

AppController.m を編集します。

#import "AppController.h"


@implementation AppController

- (IBAction)sayHello:(id)sender{
	[textField setStringValue:@"Hello World!"];
}

@end

ビルドと実行

[ビルド] → [ビルドして進行] メニューを選択。
問題がなければ、アプリケーションが起動します。

まとめ

GUIレイアウタが思ってた異常に直感操作できそう。
ただし、直感操作すぎて最初は戸惑うかもしれないので、よく分からなくなったらここへ戻ってくるほうがよさそう。
また、ここに書いたことは「たのしいCocoaプログラミング」に書かれてあることであり、詳しくはそちらを参考にすると良い。