2012-01-04 33 views
0

xcode 4.2を使用してiPhoneアプリケーションを使い始める。UITextFieldのコントローラを作成する必要はありますか?

私は、アプリケーションの各ビューにUIViewControllerのサブクラスを使用することをお勧めします。これらのビューには、関連するビューのボタンなどをテストするための基本コードを記述することができます。

これらのビューのいずれかのテキストフィールドでいくつかのアクションを実行したいと思います。私はValue Changedイベントを使用して各キーストロークでテキストフィールドの内容を記録します。

UITextFieldコントローラのサブクラスを作成する必要がありますか?あるいは、このようなことを、既存のViewControllerのサブクラスで扱うのですか?

後者の場合、ビューコントローラのサブクラスのテキストフィールドをどのように参照して接続しますか?

答えて

0

テキストフィールドを格納する既存のViewControllerサブクラスを使用します。経験則として、1画面あたり1つのViewController(UINavigationController、Modal画面、uisplitviewcontroller、およびpopoversを除く)があります。

は、カスタムのUIViewControllerの.hの中で財産になるだろう、それを参照するには、次の

@property (nonatomic,weak) IBOutlet UITextField * myTextField; 

注IBOutletキーワード。これにより、InterfaceBuilder(またはストーリーボード)で接続することができます。接続方法を学ぶには、IBOutletsに関するビデオを視覚的なものよりも見ることをお勧めします。

+0

ありがとうございました。私はivarとしてそれを宣言することによってテキストフィールドにアクセスすることができました - プロパティを作ることに特別なメリットはありますか?別のクラスにアクセスする必要がある場合のプロパティですか? –

+0

私は強く、弱い、または割り当てられているかどうかを明示的に定義しているので、プロパティにしたいと思っています(ivarsで行うことはできますが、どちらもデフォルトにします)。アウトレットはIB /ストーリーボードに設定されているので、クラスの外からアクセスできるものがありますが、イントロスペクションを使用して設定するため、必ずしもそうする必要はありません。 Appleの最新サンプルにはIBOutletsがプロパティとして設定されていると思いますが、これは私が従うコンベンションです。 –

1

UIViewControllerにはUITextFieldDelegateを実装することをお勧めします。インターフェイスビルダとアウトレットを介して接続するか、またはテキストフィールドにデリゲートを設定し、デリゲートコールバックから取得した参照を使用して接続できます。

関連する問題