BOID
[iOS] 텍스트필드 델리게이트 패턴 구현하기 ( 1 / 2 ) -HoonIOS 본문
안녕하세요 HoonIOS입니다. :)
저번에는 델리게이트에 대해 알아봤습니다.
이번에는 이 델리게이트의 대표적인 예인 텍스트 필드에 델리게이트 패턴을 적용시켜 보겠습니다.
텍스트필드 델리게이트 패턴 구현
기본적인 기능 ( 텍스트 필드 꾸미기, 텍스트 필드 UI 구현)과 같은 것은 직접 구현을 해주면 됩니다.
하지만...!
특정 문자열 입력 배제 시키기, 입력 가능한 길이 제한, 텍스트 필드 편집 시작했을 때, 편집 끝났을 때 작업과 같이 심화된 기능을 사용할 때는 델리게이트 패턴을 적용해야 합니다.
텍스트 필드에 델리게이트 패턴을 적용하려면 다음 두가지 작업이 필요를 합니다.
- 텍스트 필드에 대한 델리게이트 프로토콜 구현하기
- 텍스트 필드의 델리게이트 속성을 뷰컨트롤러에 연결하기
그럼 이 두가지 작업을 하나씩 알아보겠습니다.
첫번째 작업
프로토콜을 구현하는 것으로 텍스트 필드 클래스명과 델리게이트 합친 UITextFeld + Delegate = UITextFieldDelegate가 됩니다.
단지 프로토콜 구현만하고 끝나는 것이 아니라 델리게이트 프로토콜에 @optional키워드가 붙은 메서드는 선택적으로 필요한 것만 구현해도 되지만 이 외에는 메서드를 모두 반드시 구현을 해주어야 합니다.
※ UITextFieldDelegate의 메서드 선언한 것을 한번 보겠습니다.
위의 메서드들을 보면은 앞에 optional func라고 optional이 붙어있죠 이 말은 즉 필수 메서드가 아닌 선택적 메서드이므로 필요한 경우에 사용하면됩니다.
두 번째 작업
델리게이트 속성을 뷰 컨트롤러와 연결하는 것입니다.
델리게이트 속성은 델리게이트 메서드가 구현되어 있는 객체를 말하는데, 특정 이벤트가 발생을 하면 텍스트 필드는 이것을 알려주기 위해 델리게이트 메서드가 구현되어 있는 객체를 찾게 됩니다.
이 객체를 찾게 해 주는 참조 포인터가 저장되어있는 곳이 "delegate"속성입니다.
텍스트 필드를 예로 들어 보겠습니다.
텍스트 필드에서 미리 지정된 시점이 되면 delegate속성에 정의된 인스턴스를 찾아 델리게이트 메서드를 호출하고 델리게이트 메서드에 미리 정의해둔 내용이 알아서 맞춰서 실행이 되게 됩니다.
그럼 이제 간단한 개념을 설명해 봤으니 텍스트 필드의 델리게이트를 적용해보고 메서드를 한번 포스팅 했는데 다음 포스팅을 가서 적용예시를 한번 봐보시면 금방 이해 하실 겁니다.
델리게이트 메서드는 디자인 패턴에서도 중요한 역할을 하므로 열심히 공부해야 될 거 같습니다. :)
'IOS 시작기' 카테고리의 다른 글
[iOS] 최초응답자 (First Responder)란? (0) | 2021.04.22 |
---|---|
[iOS] 텍스트필드 델리게이트 패턴 구현하기 ( 2 / 2 ) -HoonIOS (0) | 2021.04.19 |
[iOS] 델리게이트 패턴이란? - HoonIOS (0) | 2021.04.18 |
[iOS] 텍스트 필드의 Text input traits특성 - HoonIOS (1) | 2021.04.17 |
[iOS] 텍스트 필드(textField 객체) 란? - HoonIOS (0) | 2021.04.17 |