2011-12-21 5 views

答えて

51

"Interface Builder"

Xcode 4より前のバージョンでは、インタフェースファイル(XIBとNIB)はInterface Builderという別のプログラムで編集されていました。

IBActionは、voidに、そしてIBOutletは何もないと定義される。これらは、ファイルを解析して接続に使用できるようにするためのInterface Builderの手がかりにすぎません。

だけのAppKit/NSNibDeclarations.hの内側にあなたがこれらを見つけることができます、参照を追加する:

だから、
#ifndef IBOutlet 
#define IBOutlet 
#endif 

#ifndef IBAction 
#define IBAction void 
#endif 

、実際には、このようなコード:

@interface ... 
{ 
    IBOutlet NSTextField *label; 
} 
- (IBAction)buttonPressed:(id)sender; 
@end 

がに変換されます

@interface ... 
{ 
    NSTextField *label; 
} 
- (void)buttonPressed:(id)sender; 
@end 

プリプロセッサによって、コンパイラがそれを見る前であっても。これらのキーワードはInterface Builderの手がかりとして機能していました。

+3

追加するだけで、 'IBAction'は' void'です。これはマークアップのようなものなので、Interface Builderはボタンや他のコントロールへの接続をコードするメソッドをコードで確認します。 'IBOutlet'についてはわかりませんが、' IBAction'に似ていると確信しているので、Interface Builderはコードにどのようなコントロールを接続できるかを見ています。 – Eimantas

+1

ツールは引き続きInterface Builderと呼ばれます。別のアプリとして存在しなくなりました。恥、私は本当にアイコンを崇拝するので。 – BoltClock

+0

@エマンタス私は、コメントを書いている時に、これらのノートを書き留めるための答えを編集しています:-)それも指してくれてありがとう – sidyll

4

インターフェイスビルダーを介してオブジェクトを接続するとき、IBはインターフェイスビルダーの略です。

0

IBActionとIBOutletはインターフェイスビルダー定数です IBOutlet:コントローラクラスは、IBOutletという特別な定数を使用してnibファイル内のオブジェクトを参照できます。

IBActions:メソッドの戻り値の型としてIBActionを使用して、コントローラクラスの特定のメソッドをトリガするようにnibファイルのインターフェイスオブジェクトを設定できます。

関連する問題