それぞれテーブルビューにテキストフィールドを追加し、タグを使用してテキストフィールドのテキストにアクセスしたいと思います。どうすればそれを行うことができますか?下の画像を参照してください。
3 に答える
UITextField *myTextField = (UITextField*)[cell viewWithTag:yourTag];
myTextField.tag=indexPath.row;
このようにして、10個のテキストフィールドタグを割り当てます。テキストフィールドデリゲートメソッドの後で、さまざまな10個のタグからそのテキストを取得できます。
あなたはあなたのメソッドでそれをすることができるあなたのtableViewCellをカスタマイズしなければなりませんcellForRowAtIndexPath
。
メソッドでセルを作成している間、次のことができます。
UITextField *textField = [[UITextField alloc] init];
// Set a unique tag on each text field
textField.tag = 101;
// Add general UITextAttributes if necessary
textField.enablesReturnKeyAutomatically = YES;
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
[cell.contentView addSubview:textField];
[textField release];
その後、テキストフィールドにアクセスするすべての場所で、次の操作を実行できます。
UITextField *myTextField = (UITextField*)[cell viewWithTag:yourTag];
これがあなたが探しているものであることを願っています。
アップデート
ご覧のとおり、タグ101を静的として割り当てました。これは任意の数にすることができますが、同じセルに同じタグを持つ他のビューがないことを確認してください。あなたがそれ以外の別のセルにいる場合は問題ではありません。
今どこでも言うことができればdidSelectRowAtIndexPath
あなたは次のことを行うことができます:
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UITextField *myTextField = (UITextFiled*)[cell viewWithTag:101];
このようにして、最初にセルを取得します。これで、セルには101タグのあるビューが1つしかないため、他のtextFieldに同じタグがある場合でも、セルはすべて同じではないため、テキストフィールドを取得できます。
乾杯
// UITextFieldからテキストを取得するには、Textfieldを初期化した後に次のコードを追加します
[yourTextField addTarget:self action:@selector(getTextFieldValue:) forControlEvents:UIControlEventEditingDidEnd];
そしてこの方法
- (void) getTextFieldValue:(UITextField *)textField{
NSLog(@"GetTextvalue");
if (textField.tag == 0) {
NSLog(@"1--->%@",textField.text);
}else if(textField.tag == 1){
NSLog(@"2--->%@",textField.text);
}else if(textField.tag == 2){
NSLog(@"3--->%@",textField.text);
}
}