Cocoaではじめよう③ 「テキストフィールドの配置」

Cocoaではじめよう Mac/iPhoneプログラミング入門 (P.71~P.75より)

■テキストフィールドの配置

先ほどはアプリケーション起動直後にNSLogで文字列を表示させ、プログラムの動きを確認しました。いよいよ、ここから本題に入ります。
ウインドウにテキストフィールドを配置して、数値を設定するプログラムを書いてみましょう。
ここではIBOutletという重要な仕組みを説明します。
Interface Builderで認識させるために、クラスのインスタンス変数をIBOutlet宣言します。
Interface Builderでは、ウインドウ上にテキストフィールドを配置し、Controllerインスタンスとテキストフィールドをコネクション設定します。そして最後に、Outletに対するプログラムを実装ファイルに記述します。

●Controller.hにプログラムを追加す

Controller.hをエディタに表示させます。
Controllerクラスに以下のインスタンス変数を追加します。
すでにテンプレートとして#import文や@interface文が入力されていますので、背景が反転になっている行を入力してください。

▼リスト
001: #import <Cocoa/Cocoa.h>
002:
003: @interface Controller : NSObject {
004:      IBOutlet NSTextField *textField;
005: }
006: @end

NSTextFieldクラスのポインタとして、textFieldというインスタンス変数を宣言しています。
宣言の前にIBOutletを記述することで、Interface BuilderでOutletと識別し、オブジェクトとのコネクション設定が可能になります。
入力を終えたらファイルメニューから「保存」を選択し、ソースコードをファイルに保存します。Interface Builderでソースコードの内容を認識させるためです。
以降、ソースコードの入力が終わったら、ファイルを保存する習慣を身に付けましょう。


●テキストフィールドの配置

ここからは、Interface Builderに切り替えて操作します。
「Window」というタイトルのウインドウにテキストフィールドを配置します。
ウインドウが表示されていない時は、xibウインドウから「Window」アイコンをダブルクリックします。テキストフィールドはNSTextFieldというクラスで、CocoaフレームワークのAppKitが提供しています。

▼図



[Library]→[Cocoa]→[Views & Cells]の階層をたどって「Inputs & Values」グループを選択します。

▼図



オブジェクトリストからText Fieldを探したら、ウインドウの上にドラッグ&ドロップします。

▼図

●Outletのコネクション設定

配置したText Fieldをヘッダファイルで宣言したtextFieldというOutletに接続します。
この操作により、textFieldというインスタンス変数がウインドウ上のText Fieldを参照することになり、textFieldに対してNSTextFieldのメソッドを呼び出すことができます。
xibウインドウにあるControllerアイコンからウインドウ上のText Fieldに向かって、controlキーを押しながらドラッグし、Text Fieldの上でマウスボタンを離します。

▲注意 : Text Fieldからドラッグしないでください。全く違う意味になります。

▼図



ポップアップウインドウに「Outlets - textField」と表示されるので、textFieldを選択します。

▼図



●Controller.mにプログラムを追加する

Xcodeに戻り、Controller.mをエディタに表示させます。
applicationDidFinishLaunchingメソッドに、テキストフィールドの数値を設定するプログラムを書きます。先ほどのNSLogの行はもう使わないので消去します。

▼リスト
001: #import "Controller.h"
002:
003: @implementation Controller
004:
005: - (void)applicationDidFinishLaunching:(NSNotification *)notification {
006:      [textField setIntValue:12345];
007: }
008:
009: @end

●ビルドと実行

プロジェクトウインドウの「ビルドして進行」ボタン、またはビルドメニューから「ビルドと実行」を選択するとビルドが始まります。

▼図
6

▼図
7



何もエラーがなければアプリケーションが起動し、ウインドウ上にあるテキストフィールドに「12345」がセットされます。

▼図
8

●プログラムの解説

IBOutletで宣言したtextFieldは、Interface Builderでウインドウの上に配置したNSTextFieldとOutlet接続しました。つまり、ソースコードにおいては、textFieldはウインドウの上に配置したNSTextFieldを指し示すものとなります。そのtextFieldにNSTextFieldが持つ「setIntValue」という整数をセットするメソッドを呼び、引数に整数を指定することで、テキストフィールドに「12345」という値が入るわけです。

Cocoaではじめよう Mac/iPhoneプログラミング入門

著者の中野洋一氏より読者の皆様へ

筆者が定期開催しているセミナーをベースにした、Cocoaプログラミングの入門書です。神経衰弱ゲームをテーマとした、楽しみながら学習できるような実習プログラムで解説しています。
iPhoneアプリ開発へのアプローチとなるよう、Cocoaの基礎知識で足固めをすることも本書のねらいです。


→書籍詳細および購入は「Cocoaではじめよう Mac/iPhoneプログラミング入門 書籍情報」へ

カテゴリ


[PR]

最近のブログ記事

カレンダー

<   2009年3月   >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31