質問

ご挨拶、

私は「SquareClass」と呼ばれるNSObjectクラスを作成したビューベースのアプリケーションのプロジェクトを持っています。 さて、Xcodeののインターフェイスビルダーから、私は(すなわちテキストボックス、ボタンなどの任意のUIコントロールからアクションを作成する、というように、グローバルスコープを持つ正方形のオブジェクトに「SquareClass」ことをインスタンス化することができるようにしたいです... )、私はそれらのアクションの中にそのオブジェクトのメソッドを呼び出すことができるようにしたい。

例:

(void)MyAction1:(id)color
{
   [square setColor:color];
}

(void)MyAction2:(id)width
{
   [square setWidth:width];
}
あなたが見ることができるように

、正方形のオブジェクトはグローバルスコープを持っている必要があります。 この威力は簡単または多分私たちの一部のためにそれを行うための間違った方法です。 私は、Web経由で見て、ちょっとない.xibファイルに対して、.nibファイルへの道を見つけた。

任意の提案を大幅に理解されるであろう。 どうもありがとうございました。

のYohannます。

PS:これは今まで私の最初の投稿です、甘いこと

役に立ちましたか?

解決

まず、NIBファイルは、すべての意図および目的のために、XIBファイルと同じです。それはXIBファイルだけコンパイルされたバージョンです。

さて、あなたのNIB / XIBでNSObjectのから派生したオブジェクトを作成するには、単にあなたのファイルにライブラリウィンドウからNSObjectのをドラッグします。そして、アイデンティティインスペクタにカスタムクラスにクラスを変更します。

あなたはこのようなメソッドを定義する場合:

- (IBAction)myAction:(id)sender

あなたがInterface Builderでそれらをフックアップすることができるでしょう。

すべてのことを言って、それは何をやっていることは全く行うには正しいことであるかどうかを伝えることは困難です。あなたはNSViewControllerサブクラスを使用する必要があるようですので、そのためのドキュメントを見て、私に聞こえるます。

また、あなたは、コントローラとモデルのオブジェクトが何であるかを理解するビューを確認する必要があります。文学の多くがこれにあります。

他のヒント

あなたはUIViewのを拡張するクラスを作成する場合は、

、あなたはあなたのXIBのためのファイルの所有者を作ることができる拡張したクラスを実装します。その時点から、単純に四角のためのあなたの拡張クラスにインスタンス変数を追加します。プロセスの最後のステップは、アクションへの各コントロールにバインドするために、あなたのクラスにメソッドを追加することです。

- (IBAction) pinSelected: (id)sender;
あなたはこれらのメソッドを(それが実際に空の別名であるが、Interface Builderのへのヒントとして機能し、それらはIBActionを返すようにしてください)を作成したら、

あなたがコントロール+ドラッグを使用してファイルの所有者(経由メソッドにコントロールをバインドすることができますリンクを確立するために)。

グッドラック!

私はXIBファイル内で実行されていない必要なものを行う方法を見つけました。上記の提案が有効である本家のそれは、私が思ったより方法が簡単です。

四角形オブジェクトを使用するために、私は、ヘッダファイルを参照しなければなりませんでした

 #import "square.h"

SquareUIViewController.hおよび正方形オブジェクトへの参照を追加します。

Square *square;

次にSquareUIController.mに、私はちょうど/割り当てる必要が何かをやってする以前に正方形のオブジェクトを初期化します:

(IBAction)myInit
{
square = [[Square alloc] init];
}

今、私は最初の投稿の方法を使用することができます 出来上がり!

PS:!評論家、火災アップ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top