커스텀 뷰로 만든 UI 컴포넌트의 포커스링 그리기 – Cocoa

포커스 링

코코아 UI 요소에서 현재 포커스를 받은 UI 컴포넌트는 외부에 흐릿한 푸른 색 후광이 그려지며, 현재 포커스를 받고 있는 입력 디바이스라는 점을 시각적으로 피드백한다.  시중의 코코아 관련한 대부분의 책에서는 다음과 같이 draw: 메소드 내에서 포커스링을 그리는 것으로 포커스링을 흉내낼 수 있다고 한다. 1

override func draw(_ dirtyRect: NSRect) {
    // 배경을 칠하고,
    super.draw(dirtyRect)
    self.bgColor.set()
    NSBezierPath.fill(bounds)

    // 자신이 속한 윈도에서 자기가 제1응답자라면?
    if let fr = window?.firstResponder, fr === self {
        // 포커스 컬러로 세팅하여, 자신의 테두리 영역을 그린다.
        NSColor.keyboardFocusIndicatorColor.set()
        NSBezierPath.setDefaultLineWidth(4.0)
        NSBezierPath.strokeRect(bounds)
    }
}

그리고 제 1 응답자가 되었을 때 포커스링을 그리기 위해서는 뷰가 응답자 상태에 진입하거나 빠져나올 때마다 뷰를 새로 그리도록 갱신해야 한다.

override var acceptsFirstResponder: Bool { return true }

override func resignFirstResponder() -> Bool {
    NSLog("Resigning...")
    setNeedsDisplay(bounds)
    return true
}

override func becomeFirstResponder() -> Bool {
    NSLog("Becoming...")
    setNeedsDisplay(bounds)
    return true
}

커스텀 뷰로 만든 UI 컴포넌트의 포커스링 그리기 – Cocoa 더보기

TableView for OSX

OSX의 테이블뷰 사용법

iOS의 테이블과 달리, OSX의 테이블뷰는 행과 열이 모두 존재하는 애트리뷰트들을 가진 레코드들의 집합을 표시하는 테이블이다. 예를 들어 종업원들의 명부를 표시하는 테이블 뷰는 성, 이름, 지점명의 각각의 칼럼을 가진 테이블을 표시하게 된다.

테이블 뷰는 하나 혹은 그 이상의 칼럼을 가질 수 있으며 횡방향, 종방향으로 스크롤 되고, 선택 영역을 가질 수 있고, 칼럼의 드래깅을 지원한다. 각각의 행은 데이터 집합 내에서 대응하는 하나 이상의 셀을 포함한다.

이 문서에서 은 테이블 내 실제 칸 하나를 의미한다. 셀을 나타내는 NSCell 혹은 그 서브 클래스는 필요하면 클래스명으로 직접 언급한다.

TableView for OSX 더보기

OSX 단축키 일람

  1. 참고 차원에서 기록
  2. 단축키 전체는 아니며, 필요한 사항은 추후 업데이트
  3. OSX외의 OS에서는 단축키 문자가 안보일 수 있음

부팅시

  • 마우스 버튼을 누르고 있는다 – 속에 들어있는 CD를 빼낼 수 있다.
  • : 부트캠프를 통해 OS를 선택할 수 있음
  • +V : verbose 모드에서 시동 (시동 로그를 볼 수 있음)

Finder

  • ++A : 어플리케이션 폴더 열기
  • ++C : 컴퓨터 폴더 열기
  • ++D : 바탕화면 폴더 열기
  • +i : 정보 입수
  • ++Q : 로그아웃
  • +R : 가상본의 원본 보기
  • +, : 환경설정 열기
  • +` : 열려있는 같은 프로그램 창 사이 전환
  • +tab : 프로그램 사이 전환
  • 누르고 드래그 : 다른 볼륨으로 파일을 이동
  • + : 파일 삭제(휴지통으로)
  • 누르고 드래그 : 항목 복사
  • + 누르고 드래그 : 가상본(symbolic link) 생성
  • + + 볼륨 변경 : 볼륨이 1/4칸 씩 변경된다.
  • + + 화면 밝기 변경 : 화면 밝기가 1/4칸 씩 변경된다.
  • ++ : 잠자기 상태로 바로 진입

화면 캡쳐

  • ++1 : 전체화면을 클립보드로 복사
  • ++2 : 일부 화면 영역을 클립보드로 복사
  • ++3 : 전체화면을 파일로 캡쳐 (파일을 바탕화면에 저장됨)
  • ++4 : 일부 화면 영역을 파일로 캡쳐
  • ++4 space bar : 하나의 창을 파일로 캡쳐 (그림자 영역이 포함됨)

응용프로그램

  • +W : 화면에 보이는 창 닫기, 브라우저에서 탭 닫기
  • ctrl+space bar : spotlight 실행
  • ++/ : 응용프로그램 도움말 열기 (사실상 +? 임)

Dock

  •  +클릭 : 해당 응용프로그램의 폴더 바로 열기
  • 누른채로 열린 파일의 프록시 아이콘[1. 응용프로그램에서 작성하던 파일을 저장하면, 제목 표시줄에 파일 아이콘이 생기는 데 이를 프록시 아이콘이라 한다. 프록시 아이콘은 파인더 창의 아이콘과 동일하게 동작할 수 있다.] 클릭 : 해당 파일의 경로를 보여줌


  • 2011-04-15 : 최초작성