質問: [coments] } } } ```
回答: ご質問内容から考えると、storyboard上で繋げている(=outlet接続している)カスタムセル(自分で作成したセル)内のUITextFieldに対して ソースコードでアクション(delegate)を設定したいということでしょうか? (異なっていたらごめんなさい。どういう実装をされているか教えていただけましたら幸いです。) 例えば、 ViewControllerというUIViewControllerがあり、 カスタムセルにtextFieldというUITextFieldがcell内に設定されているとします。 ``` class ViewController: UIVIewController { // これはCellからViewControllerに移動する // VieWillAppearなどで値は取得している前提で話を進めます var postArray: [PostData] = [] ``` ``` // ViewControllerの中のセルを設定しているメソッド func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // (中略) //1UITextFieldDelegateを設定 cell.textField.delegate = self //2どのセルのUITextFieldかを知りたい場合は //tagに番号をつけて区別できるようにする方法などもあります cell.textField.tag = indexPath.row // postArrayの中からcellに表示したいデータを取得する let post = postArray[indexPath.row] // cellに値を設定する cell.setPostData(post) // (以下略) } extension ViewController: UITextFieldDelegate { // 1上記でUITextFieldのdelegateにViewControllerを設定しているため、 // 下記のメソッドで全てのセルのUITextFieldの処理を受け取ることができる /* UITextFieldが編集された直前に呼ばれる */ func textFieldDidBeginEditing(_ textField: UITextField) { // 2上記で設定したtextField.tagからどの行のUITextFieldかを知ることができます。 print("tag: \(textField.tag)") print("textFieldDidBeginEditing: \(textField.text!)") } /* UITextFieldが編集された直後に呼ばれる */ func textFieldDidEndEditing(_ textField: UITextField) { print("textFieldDidEndEditing: \(textField.text!)") } /* 改行ボタンが押された際に呼ばれる */ func textFieldShouldReturn(_ textField: UITextField) -> Bool { print("textFieldShouldReturn \(textField.text!)") // 改行ボタンが押されたらKeyboardを閉じる処理. textField.resignFirstResponder() return true } } ```