아웃렛 변수와 액션 함수 추가하기
아웃렛 변수와 액션 함수란?
스토리보드에 추가한 객체를 선택하고 내용을 변경하거나 특정 동작을 수행하도록 하기 위해 해서는 아웃렛 변수와 액션 함수가 필요하다.
아웃렛 변수
- 해당 객체에 접근할 수 있는 변수
액션 함수
- 특정 버튼을 클릭했을 때 특정 행동을 하는 함수를 생성하고, 버튼을 클릭했을 때 해당 함수가 실행되게 할 수 있다. 이러한 함수를 액션 함수라고 부른다.
소스 작업을 위한 보조 편집기 영역 열기
아웃렛 변수와 액션 함수를 추가하기 위해서는 보조 편집기(Assistant editor) 영역을 열어야 한다.
화면 오른쪽 윗부분의 'Adjust Editor Options'(상단 작대기 여러개) 버튼을 클릭한 후 'Assistant' 메뉴를 선택하면 오른쪽에 소스를 편집하는 영역이 나타난다.
✔︎ 보조 편집기를 열었을 때 스토리보드가 좁아 보일 수도 있는데, 'Adjust Editor Option'에서 Minimap 메뉴를 선택해제하여 미니맵을 없애면 조금 더 넓어 보일 수 있다.
레이블에 아웃렛 변수 추가하기
- 'Hello'라고 입력된 레이블에 아웃렛 변수를 추가해보자.
- 스토리보드에서 'Hello' 레이블을 마우스 오른쪽 버튼으로 선택한 후 오른쪽 보조 편집기 영역으로 드래그한다.
- Control 버튼을 누른 상태에서 마우스 왼쪽 버튼을 사용해도 된다.
- ViewController의 클래스 선언문 바로 아래에 끌어다 놓는다.
- 아웃렛 변수는 일반적으로 클래스 선언부 바루 아래에 추가한다.
- 여러 개의 아웃렛 변수를 추가할 때는 위에서부터 차례대로 추가한다.
- Connection은 'Outlet', Name은 'lblHello', Type이 'UILabel', Storage를 'Strong'으로 선택한 후 Connect 버튼을 클릭하면 'Hello' 레이블과 아웃렛 변수가 연결된다.
@IBOutlet var lblHello: UILabel!
- Text Field에 아웃렛 변수 추가하기
- 같은 방식으로 이름은 txtName으로 아웃렛 변수를 연결한다.
@IBOutlet var txtName: UITextField!
버튼에 대한 액션 함수 추가하기
Send 버튼을 아웃렛 변수를 선언하는 것 처럼 드래그한다.
- 액션 함수는 일반적으로 클래스의 맨 마지막 부분에 추가한다.
Connection은 'Action', Name은 'btnSend', Type이 'UIButton'인지 확인하고 Connect 버튼을 클릭한다.
아웃렛 변수 / 액션 함수를 추가 / 삭제할 때 주의 사항
아웃렛 변수 및 액션 함수를 추가하면 코드 왼쪽에 원으로 표시가 되는데, 이는 스토리보드의 컴포넌트와 소스 코드가 연결되었음을 의미한다.
이 원에 커서를 올려 두면 해당하는 컴포넌트가 표시되어 제대로 추가되었는지 알 수 있다.스토리보드에서 객체를 선택한 후 인스펙터 영역의 'Show the Connection Inspector'(가장 오른쪽) 버튼을 클릭하면 연결 상태를 확인할 수 있다.
또는 객체를 선택한 후 마우스 오른쪽 버튼을 눌러도 확인할 수 있다.아웃렛 변수 또는 함수를 코드 상에서만 삭제해도, 인스펙터 영역을 보면 연결 상태가 유지되어 있다.
제대로 연결을 끊으려면 Connection Inspector에서 x 버튼을 눌러 연결을 삭제해야 제대로 삭제가 가능하다.