Interface Builder3.0の使い方

Mac OS X Leopardでは、開発環境も大きく変わりました。Mac OS X標準のCocoaアプリケーションを作成する開発環境のXCode,GUIを設計するInterfaceBuilder、そして開発言語のObjective-Cすべてがメジャーバージョンアップされています。その中でも、特にInterface Builderの使い方が少なからず変わって、少し戸惑うところもあるので、Interface Builder2.0を使っていた人のための、Interface Builderの使い方を書こうと思います。

今回は、Interface Builderでコントローラーオブジェクトの作り方を説明します。ここでいうコントローラオブジェクトとは、MVC(Model-View-Controller)のControllerオブジェクトのことです。このあたりのワークフローが、特に旧Interface Builderと変更されたので、そこの違いを中心に説明してきたいと思います。

1. XcodeでCocoa-Applicationのプロジェクトを作成します。ここはXcode3.0になって変わらないので、いつものようにプロジェクトを作成します。

Xcode 3.0

2. コントローラーオブジェクトにするクラスを作成します。ここではAppControllerというクラスを新規ファイルから作成しています。以前は、Interface Builderで作成してからXcodeの流れでしたが、新しいXcode,Interfacu Builderでは、Xcodeで作成したクラスがInterface Builderに反映されるというやり方に変更されました。

Create class file

3. 作成したコントローラークラスのヘッダに、アウトレット,アクション接続になる定義を追加します。ここでは、アウトレットのwindow,アクションのactionを定義しています。以前は、Interface Builderで作成してくれた部分です。アウトレットはIBOutlet,アクションはIBActionをそれぞれ指定して定義しましょう。ここで間違うと、うまくInterface Builderに反映されません。注意しましょう。

write header

4. Interface Builderを立ち上げます。

Interface Builder 3.0

5 ライブラリからObjectを探します。ライブラリはメニューのTools-Libraryから表示できます。このライブラリというパネルが、以前のInterface Builderのパレットにあたります。

Interface Builder 3.0 Library

6. ライブラリのObjectをnibにドラッグしてObjectを作ります。これは以前、Interface Builderでクラスをインスタンス化する動作にあたります。新しいInterface Builderでは、この後カスタムクラスを設定します。

Interface Builder 3.0 Create instance object

7. 作成したObjectを選択したまま、メニューからTool – Indentity Inspectorを開きます。ここで開かれるパネルは、以前のInterface Builderのインスペクタにあたります。

Interface Builder 3.0 Show identity inspector

8. Indentity inspectorのClassを、最初にXcodeで作成したクラスと同じ名前にします。入力中にクラス名を補完してくれる機能がついているようです。ここでは、さっきXcodeで作成したAppControllerを指定しています。ここがカスタムクラスの設定にあたるので、他のビューを継承したクラスを作成する場合も同じようにします。Indentify inspectorを開いているときに、Objectを選択したままにしていることに注意してください。

Classを設定すると、自動的にXcodeで定義したアウトレット,アクションが表示されます。ここで表示されない場合は、ヘッダの記述に間違いがないか、どこか手順にミスがないかよく確認してください。

Interface Builder 3.0 Set identify

9. アウトレット,アクションをそれぞれ接続します。接続元からctrlキーを押しながら、接続先へとドラッグします。これ含めた以降の手順は、旧Interface Builderとそれほど変わりません。

Interface Builder 3.0 connecting outlet, action

接続先を選ぶときは、接続先でマウスを離したときに出てくる黒いウインドウから選択します。

Interface Builder 3.0 select connctions

10. すべての接続が完了したら、Xcodeに戻ってアクションを実装しましょう。これでコントローラーオブジェクトの作成は完了です。

メソッドを実装し、実行した例です。

Interface Builder 3.0 run application

コメント

  1. [...] こたつつきみかん : Interface Builder3.0の使い方 [...]

  2. K.Hahimoto より:

    助かりました。「たのしいCocoaプログラミング」という本を片手に遊んでいたのですが、本に記述されているInterface Buildderが明らかに違うのでこまっていました。

  3. [...] こたつつきみかん : Interface Builder3.0の使い方 [...]

  4. O.Yoshihiro より:

     Leopard対応の「たのしいCocoaプログラミング」を買って、最初のチュートリアル「Hello World」にとりくんでいる。(Xcode 3.1.1、Interface Builder 3.1.1)

     ところが、082ページの『アウトレットとアクションの接続」がどうしても上手くいかない。コントロールキーを押しながらウインドウ上のテキストフィールドに栓を引っ張るんだが、本に出ているような『黒いウインド」が開かない。何かやり方が間違っているんだろうか?

  5. OverTaker より:

    私自身その本を持っていないので何とも言えませんが、おそらく何かを間違っているのでしょう。引っ張る元のオブジェクトのIdentifier Inspectorを見て、クラスが正しく設定されているかを確認してみてはどうでしょうか。そこのOutletの項目にヘッダで定義したアウトレットがなければ、ヘッダが正しくないか、クラスの設定が正しくないか、どちらかだと思われます。

  6. J.Takahira より:

    たぶん、Xcodeでソースを一旦セーブしてからやるとうまく行きますよ!
    私もそこで引っかかりました。

  7. [...] そんな時にお役立ちなエントリー ・Interface Builder3.0の使い方 ・Xcode 2.xと3の違い 基本的な考え方は、Xcode [...]

コメント投稿