UITableView 上の touchesBegan は UIViewController まで上がってこない

| コメント(0) | トラックバック(0)

----

iOS アプリを作っていて、画面のどこががタップされたことを UIViewController の touchesBegan
で検知しようとしたが、イベントが一向に上がってこない。

いろいろ試してみると、どうやら UITableView 上のタップでは UIVIewController まで上がってこないようだ。

以下の手順で解決

- UITableView のサブクラス TouchableTableView を作成
@interface TouchableTableView : UITableView
な感じ

- touchesBegan メソッドをオーバーライドし、nextResponder にイベントを渡す
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   [self.nextResponder touchesBegan:touches withEvent:event];
   [super touchesBegan:touches withEvent:event];
}
な感じ

IB で TableView のクラスを TouchableTableView に変更

以上で無事にイベントが上がるようになりました。



 

トラックバック(0)

トラックバックURL: http://onno.jp/mt/cgi-bin/mt-tb.cgi/148

コメントする

このブログ記事について

このページは、管理者が2012年2月 5日 08:56に書いたブログ記事です。

ひとつ前のブログ記事は「ipa ファイルを作ろうと思ったが XCode の Build For Archiving メニューが非活性で選択できない」です。

次のブログ記事は「In App Purchase で "Cannot connect to iTunes Store" というエラーが code=3 で返ってくる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.13-ja