UITextFieldデフォルトで各セルの を無効にし、UITableViewデリゲート メソッドdidSelectRowAtIndexPath:を使用して
- 選択した行の indexPath をプロパティに格納します
- 有効にする
UITextField
UITextFieldファーストレスポンダーを作る
クラス拡張でプロパティを定義します。
@interface MyTableViewController ()
@property (strong, nonatomic) NSIndexPath *activeIndex;
@end
の実装でdidSelectRowAtIndexPath::
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.activeIndex = indexPath;
AddCell *selectedCell = (AddCell *)[self.tableView cellForRowAtIndexPath:indexPath];
[selectedCell.textField setEnabled:YES];
[selectedCell.textField becomeFirstResponder];
}
UITextFieldファーストレスポンダ ステータスを辞任するときは、再度無効にする必要があります。
UITableViewControlleryourが each のデリゲートであると仮定すると、メソッドUITextFieldの実装でこれを行うことができます。UITextFieldDelegate
-(void)textFieldDidEndEditing:(UITextField *)textField
{
[textField setEnabled:NO];
}