2010年5月1日土曜日

ビューのベースクラスは何が良いか

ビューを構成する際のベースとなるクラスは、View-based Applicationをひな形とした場合、UIViewクラスとなります。
しかしながら、UIViewクラスはタッチイベントをハンドリングすることができません。

そこで、ベースとなるクラスをUIViewクラスを継承したUIControlクラスとすると、部品以外の部分でもタッチイベントを持つことができ、そのイベントをもとにコントロールすることができます。

よく、キーボードを消したいのに消せないアプリがありますが、それはUIControlクラスをベースとしていないか、テキストフィールド以外をTouchUpしたとき、キーボードを消すためにテキストフィールドクラスををFirstResponderからはずす(resignする)resignFirstResponderメソッドを構成し、アクションとして呼び出していないためのようです。

- (IBAction) backgroundTap:(id)Tap{
[Name resignFirstResponder];
[Number resignFirstResponder]; 

以下では、デフォルトで「View」となっているnibのインスタンスが、「Control」となり、「Control」のTouch Dounイベントが、File's Ownerのアクションと接続されているのがわかるかと思います。要注意ですね。


0 件のコメント:

コメントを投稿