グループ化されたテーブルビューが追加されたViewControllerがあります。一部のセルにはテキストフィールドが含まれています。ユーザーがリターンキーを押したときに、最初のレスポンダーをセルリストの次のテキストフィールドに切り替えたいと思います。ただし、それを機能させることができず、間違ったセルが選択されているのか、間違ったテキストフィールドが選択されているのかわかりません。
次のようにcellForRowAtIndexPathにタグを設定しています。
cell.tag = ((indexPath.section + 1) * 10) + indexPath.row;
これにより、10の位がセクション値で、1の位が行値であるタグが作成されます。すなわち。タグ11はセクション0の行1です。
これが私のtextFieldShouldのコードです
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
UITableViewCell *cell = (UITableViewCell *)textField.superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
cell = [self tableView:_tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0)
{
if (indexPath.row == 0)
{
[[cell viewWithTag:((indexPath.section + 1) * 10) + (indexPath.row + 1)] becomeFirstResponder];
}
if (indexPath.row == 1)
{
[[cell viewWithTag:((indexPath.section + 2) * 10)] becomeFirstResponder];
}
}
return YES;
}
最後に、現在、新しいタグの増分はハードコーディングされていますが、毎回実際の値をハードコーディングせずに新しいタグに移動できるようにしたいと思います。これは可能ですか?