TableView 특정 셀 가져오기

Duna·2021년 7월 22일
0
post-thumbnail

저 셀을 눌렀을 때, TextField가 시작됐으면 좋겠어..

NotificationCenter를 사용해서 할 수 있다고 생각했지만, 노티가 Cell안에 있는 TextField를 건드리는 것이기에.. 노티를 보내는 순간, 모든 셀에 있는 TextField를 다 건드리더라구요.

그럼 우리는 이렇게 생각할 수 있죠.

특정한 TextField를 건들여줘!!!!

TextField는 일단 Cell안에 있는 것이기에 특정함이 없어요. 특정함은 누구한테 있다? 셀한테 있다.
우리는 Cell이 가지고 있는 indexPath를 사용해야 합니다.

그럼 어디서 사용하지?
특정 셀을 누르면 시작해야하기 때문에, didSelectRowAt를 사용하면 되겠다! 라고 생각할 수 있어요.
이제 우리는 textField를 누른 셀의 번호까지 알아냈어요.
이젠 해당 셀에 있는 TextField를 가져와야 합니다.


Cell에 있는 TextField를 어떻게 가져오지?
가져온 indexPath로 cell를 특정해봅시다.
저는 cellForRow(at:_)를 발견했어요.

🌈 Apple Developer Documentation로 바로가기

이 친구는 at에 indexPath를 넣고 해당 indexPath에 해당하는 cell를 가져와줍니다.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        guard let currentCell = tableView.cellForRow(at: indexPath) as? TotalListTVC else {
            return
        }
        currentCell.reminderTextField.becomeFirstResponder()
    }

이렇게 하면 누른 부분의 Cell를 가져와서 textField를 시작시켜줄 수 있습니다.

cellForRow말고도 특정한 Section, Row, Cell를 참조할 수 있는 함수들이 많으니 Document에서 빼쓰면 될 것 같네요!

profile
더 멋진 iOS 개발자를 향해

0개의 댓글