2009-09-18 7 views
1

NSOutlineView에 보관 파일의 내용을 표시하는 Cocoa 응용 프로그램을 작성하고 있습니다. 윤곽선에 NSBrowserCell에 대한 사용자 지정 아이콘을 제공하지만 아래 그림과 같이 폴더 아이콘이 항상 공개 삼각형에 너무 가깝게 표시됩니다. (FWIW는 VersionsBetterZip 모두 간격 문제없이 유사한 데이터를 표시합니다.)NSOutlineView의 아이콘 간격이 너무 좁음

NSOutlineView-icon-spacing http://img.skitch.com/20090918-tgfjh9x8dhgqxqnb2su8fby4ng.jpg

에만 폴더 아이콘이 문제가 것이기 때문에, 정말 해당 맥락에서 간격을 고정에 대한 관심. (참고 : 나는 이미 아이콘을 재사용하기 위해 캐싱을하고 있으므로 필요한 경우 폴더 이미지를 조작하는 데 아무런 문제가 없습니다. 어쨌든 한 번만 발생하므로) NSBrowserCell 인스턴스에서 조정할 수있는 것이 있는지 잘 모르겠습니다. ,하지만 아직 작동하지 않는 것을 찾지 못했습니다. 노력하지 않아서가 아닙니다. 호기심에 대한


, JarScan는 JAR 파일 내에서 자바 클래스를 찾기위한 편리한 (무료) 명령 줄 도구입니다.

답변

3

"개요 테이블 열"(-[NSOutlineView outlineTableColumn] 참조)은 계층을 표시하는 데 필요한만큼 삼각형을 그리고 왼쪽 패딩을 그리는 NSTableColumn입니다. 표 내용을 표시하기위한 기본 셀은 NSTextFieldCell입니다. 보이는 간격을 늘리려면 사용자 지정 NSTextFieldCell 하위 클래스에서 드로잉을 수행해야합니다. 간격은 x 오프셋을 사용하여 이미지를 그립니다. (아웃 라인 뷰는 어떤 NSCell 서브 클래스가 사용되었는지에 상관없이 공개 삼각형을 그릴 것입니다.)

셀을 입력 할 수 있고 편집하도록 선택한 경우 올바르게 그리려면 다음 방법을 무시하고 툴팁 : 기본 Y로

우리의 커스텀 텍스트 rect는 텍스트 필드에 의해 무시 될 것이고 이것은 이상하게 묘사 할 것입니다.

+1

감사합니다. 좋은 제안입니다. CocoaDev.com에서 NSBrowserCell을 사용하려는 아이디어를 발견했으며이 접근법을 고려하지 않았습니다. 다행히도 빠른 검색을 통해 Apple의 ** ImageBackground ** 샘플 코드 http://developer.apple.com/mac/library/samplecode/ImageBackground/ 및 특히 ImageAndTextCell.m 파일을 만들 수 있습니다. 그것은 툴팁을 제외한 모든 것을 구현합니다. (필자는 어쨌든 지금은 필요하지 않습니다.) 제가 생각하지 않았던 이상한 드로잉 동작을 처리합니다. 대성공, 그리고 코드 재사용을위한 만세! –

+0

BTW, 나는이 발견을 http://cocoadev.com/index.pl?IconAndTextInTableCell에도 추가했습니다. –

관련 문제