2011-08-13 4 views
2

テーブルビューにダイナミックなテキストフィールドがあり、各テキストフィールドをIBのcustomcellに配置し、nibNameでセルをロードします。iPhone:ダイナミック数のカスタムセルでUITextfieldデリゲートメソッドを管理する方法

ユーザーがデータを入力したときに妥当性を確認して表示する必要があります。また、編集時に入力値を取得してrelaventオブジェクトに保存したいとします。

例えば、これらは私が使用できるいくつかのデリゲートメソッドです:

- (void)textFieldDidEndEditing:(UITextField *)textField{ 
    //save the data 
} 

- (IBAction)textFieldDoneEditing:(id)sender { 
    //hide the keypad when done is pressed 
    [sender resignFirstResponder]; 
} 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange{} 

2質問:

1-ユーザー入力を取得し、テキストフィールドのデリゲートがそこにいるので解雇されて、私が知っているどのように入力を検証します動的なセルとテキストフィールドの数です。これをどのように管理できますか?

2キーボードを隠すために私はこれを行いましたが、これが正しいかどうかはわかりません。 -IBでは、customcell - > uitextfieldを右クリックし、didEndonExitをFirstResponderのtextFieldDoneEditingメソッドに接続しました。これはうまくいきますが、テキストフィールドに任意の文字を追加しなかった場合は返すことができません。ボタンを押すために何かを書き込む必要があります。あなたの最初の質問に関して

+0

UITextFieldのデリゲートを発射している把握するためにタグプロパティを使用します。たとえば、indexPathPathという行をタグとして使用できます。 –

+0

@Wolfgang Schreursはどうですか? – Spring

答えて

7

...次のコードで

私はあなたが、各セル内の1つのUITextFieldを持っていると仮定します。また、UITextFieldを含むCustomCellというサブクラスUITableViewCellを作成したとします。

#pragma mark - UITableViewDataSource 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"CellIdentifier"; 
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (!cell) 
    { 
     cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault identifier:CellIdentifier] autorelease]; 
     cell.textField.tag = indexPath.row; 
     cell.textField.delegate = self; 
    } 
    return cell; 
} 

#pragma mark - UITextFieldDelegate 

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    NSLog(@"textField tag: %d", textField.tag); // this will show which textField did end editing ... 
} 
+0

tnxこれはうまくいった、残りの質問についてのアイデアはありますか?私は何かを入力する前に戻りません – Spring

+1

私はあなたの2番目の質問のための解決策を今日後で投稿しようとします。 –

5

2番目の質問については、私があなたの問題を正しく理解していれば、IBのテキストフィールドのプロパティで "Return-Enable Return Key"のチェックを外すと、空であっても戻るボタンを押すことができます。私はUIViewの簡単なテキストフィールドでこれをテストしましたが、それはあなたのケースで動作するはずです。

enter image description here

+0

アドバイスがありましたら、+1してください! – Spring

関連する問題