1

テーブルビューのセルの oe にテキストフィールドを追加しました。タッチしたオブジェクトがテキストフィールドかどうかを比較したいと思います。そのために私は使用しています-

  -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
    {
       UITouch *touch = [[event allTouches] anyObject];
    }

方法。ここでは、UITableview セルでビューをタッチする必要があります。セルはテキスト フィールドです。どうすればそれを手に入れることができますか?私はこれに構造体です。助けてください。

4

3 に答える 3

1

これを達成するための最良の方法は次のとおりだと思います。

  1. をサブビューとして持つUITableViewCellサブクラスを作成します。UITextFieldとして定義し、IBOutletインターフェイス ビルダーを介して接続します。
  2. このイベントをデリゲートに通知するデリゲート プロトコルを作成します (この場合は、 を処理する同じクラスである可能性がありますUITableViewDataSource)。
  3. UITableViewCellサブクラスを として宣言し、作成UITextFieldDelegateした に接続しUITextFieldます。IB経由
  4. 埋め込む

    -(void)textFieldDidBeginEditing:(UITextField *)textField { [self.delegate textFieldWasTapped]; }

textFieldWasTappedこれで、イベントのメイン コントローラーで通知されます。このタイプのインスタンスのみがこの呼び出しをトリガーできるため、実際に UITextField オブジェクトからのものかどうかを確認する必要はありません。

于 2013-08-05T11:55:37.283 に答える
0
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
    UITouch *touch = [[event allTouches] anyObject];
    if([[touch view] isKindOfClass:[UITextField class]])
    {
         UITextField *txtField = (UITextField *) [touch view];
         //UITextField object
    }
}
于 2013-08-05T11:59:20.027 に答える