2012-01-21 8 views
4

がどのように私は、以下の条件を考慮に入れてIBOutletまたはIBActionを作成することができます`作成することができます。どのように私はIBOutlet`またはカスタムクラスの `IBAction`

  • IBActionまたはIBOutletは私のカスタムクラス内で作成する必要があります(NSObjectから継承)
  • NSButtonインスタンスは、要するにInterface Builder (XCode 4)

の内側に私は私のクラスにあるボタンからクリックアクションを追加したいと思い見えます。

にappriciatedすべてのヘルプ、感謝:)

EDIT 2012年2月19日私が必要とされたすべてのデータを提供せずに質問をした

は...私はちょうどいくつかのより多くのココアガイドを読むために必要な.. 。

私は私が知っているから不可能である他のスコープからコンポーネントへのacitionsをフックアップしたかった:(

答えて

5

Xcodeの4に付属しているAppleのCocoaのチュートリアルのドキュメントを見て、これはかなりありますXcode/Cocoa /インターフェイスデザイナーモデルの基本です!アウトラインで

@interface MyCustomClass 

- (IBAction) myButtonClickAction:(id)sender; 

@end 

@implementation MyCustomClass 

- (IBAction) myButtonClickAction:(id)sender 
{ 
    NSLog(@"My button has been clicked"); 
} 

@end 

今インターフェースデザイナー(ちょうどデザイナーを取得するために、Xcodeで.xibファイルを開く)あなたがする必要があるに:

  1. MyCustomClassのインスタンスを追加 - 選択しますオブジェクトオブジェクトライブラリからオブジェクト(通常は1時間のキャンバス)またはデザインキャンバスにドラッグします(Objeに移動します)。キャンバス上にグラフィックウィジェットを作成しないでください)。 オブジェクトを追加し、インスペクタ(通常はrhsのキャンバス)で、クラスをMyCustomClassに設定します。アプリケーションが起動すると、MyCustomClassのインスタンスが作成されます。
  2. デザインキャンバスでNSButtonを選択し、インスペクタ接続タブを選択します。 セレクタからの下にクリックしてドラッグします。MyCustomClassに、のオブジェクトの下にドラッグします。リリース時にIBActionのメニューが表示されますので、myButtonClickActionを選択してください。
  3. アプリケーション代理人IBOutletを追加して、作成したカスタムオブジェクトインスタンスに直接リンクしたい場合は、直接アクセスしないでください。これを行うプロセスは、上記のIBActionと同じパターンに従います。

これは、言葉で言えば(写真のヘルプ)、非常に簡単です。

これらのチュートリアルを読んでください!

+0

私はステップ3を省略していたので、オブジェクトが作成されたのは理解できませんでしたが、アクセスできませんでした - ありがとう! –

0

IBOutletとIBActionは、インターフェースのビルドで使用するだけのフラグですUIComponentsとそのアクションをクラス(つまりプレフィックスIB)にフックアップするためのものです。これはすべてが使用されているため、プログラムでボタンをアクションにフックアップするのに使用しません。

ボタンをアクションに接続する場合は、ボタンを追加してアクションを行う必要があります。

(NSButtonと構文がわからない、私はiOSのプログラマーだとして - しかし、ドキュメントを検索し、それを明確にする必要があります)

+0

ココアのコントロールにはターゲットとアクションが1つしかないので、ボタンの 'action'とオプションで' target'を設定するだけです(設定せずにアクションをレスポンダチェーンに送ります)。 –