Xcode4の使い方メモ 〜 Cocoaアプリケーション

Cocoaアプリを作成するときの操作方法についてのメモです。Interface Builderなど。

Cocoaアプリケーションのプロジェクトを作成する

File>New>New Project>Cocoa Application>Next>Product Nameプロジェクト名を入力"HelloCocoa", Company Identifier:適切に入力>プロジェクト作成パスを選択>Create
プロジェクト構成は以下の通り
・HelloCocoa
・・HelloCocoaAppDelegate.h
・・HelloCocoaAppDelegate.m→ここに初期化コードを記述
・・MainMenu.xib:UI構成→Interface Builderで編集
・・Supporting Files
・・・HelloCocoa-Info.plist→アプリケーションに関する各種情報
・・・InfoPlist.strings
・・・main.m:メイン→フレームワークなので触らない
・・・HelloCocoa-Prefix.pch:プリコンパイルヘッダー→Cocoa.hがコンパイル済み
・・・Credits.rtf
・・Frameworks:ビルドに必要なライブラリ→必要に応じて追加
・・Products:ビルド後実行ファイル

Interface Builder

Xcode4ではXcode自体にInterface Builderが組み込まれています。MainMenu.xibを選択すると右側EditorでUIを作成することができます。Utilityが表示されていなかったら右上Viewボタンで表示切り替えできます。

Utility(上側)の機能について

関連するものをいくつかピックアップします。
Identity Inspector:カスタムクラスのinstanceを設定する、実行時の属性を設定するなど
attributes Inspector:Viewの属性を設定できる
size Inspector:Viewのサイズや位置を設定する
connections Inspector:OutletやActionの設定、ビューとコントローラーを接続するための各種設定
bindings Inspector:バインディングの設定
effects Inspector:Viewのエフェクトを設定する

Utility(下側)の機能について

UIを設計するときは、Object LibraryのViewを選択して、Interface BuilderのEditorにドラッグドロップすればよい。xib内のObjectやControllerなどもObject Libraryを用いて作成できる。

デザイナにViewを追加する

テキストフィールドをウインドウに追加する例:
Object Library→TextField選択→ウインドウにドラッグドロップ
削除するにはdeleteキーまたはEditor外へドラッグドロップする

Objective-Cクラスの追加

File>New>New File>MacOSX>Objective-C class>Next>subclassを選択(NSObject)>作成するパスを指定>Create
または右側UtilityのObject LibraryからObjective-C classをNavigatorまでドラッグドロップしてもよい。同様にUIViewの派生クラスも作成することができる。

xibにオブジェクトを追加する

プロジェクトにControllerというクラスを作成する。(以下、このクラスを例にして説明します)
Controller.h

#import <Cocoa/Cocoa.h>
@interface Controller : NSObject
{
    IBOutlet id textField;
}
-(IBAction)onButtonClicked:(id)sender;
@end

Object Library→Objectを選択→Interface BuilderのEditor→Objects欄にドラッグドロップ
Identity Inspector→Custom Classにクラス名を入力"Controller"

アウトレットの接続方法

クラスにIBOutletというメンバを追加して、そのクラスのオブジェクトをxibに追加しておく。
Connections Inspector>Outlets>textFieldを選択してデザイナーに表示されているテキストフィールドへそのままドラッグドロップする。(右端の○を選択してドラッグドロップすること。マウスオーバーで+マークに変化します。)
Outlets欄が"textField----× TextField"になっていればOK。接続解除するには×ボタンを押せばよい。

アクションの設定

まずObjectLibraryでボタンをウィンドウに追加しておきます。
クラスにIBActionを戻り値とするメソッドを追加して、そのクラスのオブジェクトをxibに追加しておく。
Connections Inspector>Received Actions>onButtonClickedを選択して表示されているボタンまでドラッグドロップする。
Received Actionsが"onButtonClicked--× Push Button"になっていればOK。接続解除するには×マークをクリックする。

その他

追記するかもしれません。