2011-01-07 3 views
1

하나의 뷰에 현재로드 된 문서의 "16 진 덤프"가 들어있는 코코아 애플리케이션을 생성 중입니다. 이 시점까지, 나는 늪지 표준 (매우 호소력이없는) NSTextField을 사용하고 있었지만 지금은 좀 더 강력한 것을 찾고있다.OS X에서 Cocoa에서 커스텀 NSView 구현하기

나는 0xED.app의 위대한 팬이며 기본 "16 진수 덤프"보기를 복제하고 싶습니다. 이 일을 어떻게 하죠?

필자는 눈을 사로 잡을 필요는 없지만 오프셋 또는 텍스트 열을 선택하지 않고 바이트 범위를 선택할 수 있습니다. 나는이 사실을 효과적으로 구현하기 시작한 곳을 잃어 버렸다. 확실히 이것은 빈 캔버스에 그려지지 않습니다?

0xED screenshot

답변

0

시작하고 일이 기본적으로 작동하는 방법을 참조하려면 :

  1. 서브 클래스는 NSView를.
  2. NSData를 보유 할 인스턴스 변수를 추가하십시오.
  3. 재정의 drawRect :

이 방법은 많은 양의 데이터에 대한 느려질 수 있지만, NSView의 서브 클래스를 구현하는 당신에게 좋은 핸들을 제공 할 것입니다. 그 후에는 한 번에 하나씩 문자열을 그리는 반복 호출보다 나은 것을 구현하여 드로잉 성능을 향상시키고 자 할 것입니다. mouseDown : 및 keyDown :과 같은 메서드의 재정의를 구현하여 사용자의 입력을 처리하여 바이트 범위를 선택할 수 있도록 할 수 있습니다.

일단 시작했으면, 다음 질문을하는 것이 좋습니다.

0

내 생각 엔 아마 NSTableView 또는 그 서브 클래스을 사용하여 수행 점이다.

올바른 방법으로 텍스트를 선택하는 것은 다소 힘들지 만, 가능할 수도 있습니다.

0

코코아 인터페이스가 어떻게 구성되어 있는지 보려면 NibToXibConverter을 사용할 수 있습니다.

  1. 0xED를 다운로드하고 0xED.app을 마우스 오른쪽 버튼으로 클릭 한 다음 "패키지 내용 표시"를 선택하십시오. Contents/Resources/English.lproj 폴더의 압축을 풉니 다.
  2. NibToXibConverter를 실행하고 위에서 추출한 폴더로 이동 한 다음 "NIB Decompile"옆에 체크 표시를하십시오.
  3. (가) "변환"버튼을 선택하고는 XIBs
  4. 에 펜촉을 변환합니다
  5. 더블 엑스 코드에서 엽니 다 XIB를 클릭하고 당신은 그들이 당신은에있는 점에 유의한다

    • 구성하는 방법을 볼 수 있습니다 대/소문자가 0xED 인 경우 Jon Hess가 제안한대로 사용자 정의 클래스 (대부분 사용자 정의 도면이있는 UIView의 하위 클래스)를 사용하고 있습니다.