IBOutlet과 IBAction 의 연결 구조
- 컨트롤러 Controller : Coordination(조정)
- 뷰 View : Display(화면 보여주기)
- IBOutlet은 변수로서, 컨트롤러가 뷰를 업데이트하도록 한다.
- IBAction은 메서드로서, 뷰에서 컨트롤러에 입력/변화를 준다.
[UIControl.Event] IBAction의 이벤트 종류
https://developer.apple.com/documentation/uikit/uicontrol/event
UIControl.Event : 제어할 수 있는 이벤트 유형에 대해 설명하는 상수들.
- 하나 이상의 제어 이벤트의 대상과 작업을 연합함으로서 대상 객체에게 작업 메시지를 전송하도록 제어를 설정한다. 그러기 위해, 구체화하고 싶은 대상-작업(Target-Action)쌍 각각에 제어할 수 있도록
addTarget(_:action:for:)
를 전송한다.
터치다운 Touch-down : 손가락이 화면에 닿을 떄.
터치업 Touch-up : 손가락이 화면에서 떨어질 때.
- touchDown, touchDownRepeat
- touchDragInside, touchDragOutside, touchDragEnter, touchDragExit
- touchUpInside, touchUpOutside
- touchCancel
- valueChanged
- menuActionTriggered
- primaryActionTriggered
- editingDidBegin, editingChanged, editingDidEnd, editingDidEndOnExit
- allTouchEvents, allEditingEvents
- applicationReserved, systemReserved
- allEvents
Q. 버튼에 액션 여러 개 추가 가능? - 가능. 버튼에서 오른쪽 클릭해 보면 추가할 수 있는 액션 목록이 나옴.
Q. 여러 버튼을 동시에 한 액션에 연결 가능? - 가능. 테스트용으로 버튼 B를 추가로 만들어, 이미 A에 연결된 메서드에 연결 후 실행해 눌러 보았더니 A와 동일하게 동작함.