addTarget
func addTarget(_ target: Any?, action: Selector, for controlEvents: UIControl.Event)
target
파라미터는, action
파라미터에서 명시된 메서드를 소유하고 있는 오브젝트이다. nil
이라면, responder chain을 타고 특정 동작 메시지에 응답하는 오브젝트를 찾은 후, 해당 오브젝트에게 그 동작 메시지를 배달한다.AppDelegate
에까지 전달될 수 있구나~action
파라미터는, 특정 동작에 반응해 수행할 동작을 메서드로 정의해 넣어 주는 것이다.#selector [메서드]
의 형식으로 입력하며, 들어가는 메서드는 @objc
접두어를 통해 Objective-C와의 호환성을 담보해야 한다.@IBAction func doSomething()
@IBAction func doSomething(sender: UIButton)
@IBAction func doSomething(sender: UIButton, forEvent event: UIEvent)
controlEvents
파라미터는, 상술한 경우에 해당하는 바로 그 동작이다.controlEvents
이벤트와 action
메서드를 이어 주는 메서드다! 라고 가볍게 요약할 수 있는 것이다.addTarget
메서드는 말하자면, 특정 동작과 특정 메서드를 이어주는 길을 뚫는 것이다. 두 지점 간을 잇는 길을 굳이 여러 개 뚫을 필요는 없겠지?https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget