* 컨트롤
  - UIKit가 제공하는 재사용 가능한 작은 부품
  - 일종의 뷰라고 할 수 있다
  - UIButton, UIDatePicker, UIPageControl, UISegmentControl, UITextField, UISlider, UISwitch...
  - 능동 컨트롤 : 사용자의 실제 이벤트를 연결하는 컨트롤. 일반적으로 버튼 등이 해당
  - 정적 컨트롤 : 
  - 수동 컨트롤 : 일반적으로 텍스트 필드 등이 해당

* UILabel
  - 정적 텍스트를 출력하기 위한 읽기 전용 뷰로 UIView로부터 상속. 컨트롤이 아님.
  - UIresponder로부터 상속받은 속성은 사용이 가능하지만 UIControl에 있는 이벤트는 사용 불가
  - 간단한 텍스트를 출력하기 위한 용도로 사용
  - lineBreakMode 프로퍼티가 중요. 출력 영역을 벗어났을 때의 처리.
  - numberOfLines : 몇줄까지 출력 가능한가라는 의미

* 타이머(NSTimer)
  - 일정 주기, 일정 시간에 대한 기능을 사용할 때 쓰는 클래스
  - NSTimer.h에 정의되어 있으나, Foundation에 포함되어 있으므로 기본적으로 인클루드는 안해도 된다.
  - +(id) scheduledTimerWithTimeInterval : 실행주기 Target : 수행할 메소드가 있는 객체 selector : @selector(수행할 메소드) userinfo : (id)부가 정보를 저장할 객체 repeats: (BOOL) 반복여부];
  - 수행할 메소드가 있는 객체 : 대개는 self
  - 수행할 메소드 : 시간이 되었을 때 수행할 명령. 매개변수도 없고 리턴값도 없어야 함
  - 반복여부 : yes / no
  - 타이머 종료시에는 invalidate 메소드를 호출해서 무효화시킴.

* 인터페이스 빌더로 만든 것은 dealloc으로 해제
* 프로퍼티를 만든 것은 synthersize로 해제

* UITextField
  - 사용자로부터 키보드 입력을 받기 위한 컨트롤
  - 문자가 아니라 숫자만 입력하면 될 경우는 Number Pad로 변경한다

* 키입력시 키보드가 화면을 가려버리는 문제의 해결
  1. 특정 키를 누를 때 키보드에 할당된 입력 이벤트를 강제로 회수해 버리면 된다
      - < UITextFieldDelegate>프로토콜을 따르도록 설정하고 (Bool)textFieldShouldReturn:(UITextField*)theTextField 메서드에서 매개변수가 resignFirstResponder 메서드를 호출
  2. Did End on Exit 이벤트를 이용
  3. 텍스트 필드에 이벤트가 발생할 때 버튼을 화면 위로 올리
  4. 뷰 클래스나 뷰 컨트롤러 클래스에서 터치 이벤트를 이용해서 텍스트 필드에서 FirstResponder를 해제


+ Recent posts