2013-05-13 4 views
1

NSOutlineView의 대리자에서 reference에서 outlineView:viewForTableColumn:item:까지 보았습니다. Apple 코드에서 사용 중이며 호출되는 Mac 응용 프로그램이 있습니다.이 메서드에는 중단 점을 넣을 수 있고 스택에서 볼 수 있습니다. 하지만 어디서나 문서를 찾을 수는 없습니다. Apple의 설명서에 NSOutlineViewDelegate 또는 NSOutlineViewDataSource이 나와 있지 않습니다. 그러나 NSOutlineView.h (AppKit 프레임 워크의 헤더에 있음)의 내 프로젝트에서는 tableView:viewForTableColumn:row:NSTableViewDelegate에 표시합니다.NSOutlineView viewForTableColumn : 상속되지 않은 메서드가 문서화되지 않았습니다.

(tableView:viewForTableColumn:row:과 다른 서명이기 때문에 NSTableView에서 상속받지 않은)이 방법이 문서화되지 않는 이유는 무엇입니까? 누구든지 세부 사항을 명확히하거나 게시 할 수 있습니까?

답변

0

NSOutlineViewNSTableView의 하위 클래스입니다. NSTableView에 대한 모든 설명서는 NSOutlineView에도 적용됩니다.

NSOutlineView으로 보낼 수있는 방법에 대한 이해를 얻으려면 모든 수퍼 클래스의 설명서를 읽어야합니다. 또한 NSOutlineView에 적용되는 모든 범주 및 프로토콜에 대한 문서와 모든 상위 클래스의 설명서를 읽어야합니다.

모든 내용이 한 페이지에 문서화되어 있다면 수백 메가 바이트의 텍스트가됩니다. 문자 그대로 NSOutlineView에 보낼 수있는 유효한 메시지는 수만 가지이며, 대부분 NSObject에 범주로 추가됩니다.

예를 들어, frame 방법은 NSView 페이지에 설명되어 있습니다. 그리고 initWithCoder: 방법은 NSCoding protocol 페이지에 설명되어 있습니다. 윤곽선보기의 크기를 변경하는 유일한 방법은 frame이고 initWithCoder:은 xib 파일에서 개요보기를 만든 경우 사용되는 생성자이므로 이러한 방법에 대해 알아야합니다. 하위 클래스를 만듭니다.

명령을 사용하여 메서드 이름을 클릭하거나 옵션을 클릭하여 문서의 위치를 ​​찾습니다. 또한 NSTableView에서 작동하는 일부 항목은 NSOutlineView에서 작동하지 않습니다. viewForTableColumn이 그 중 하나인지 확실하지 않습니다.

+0

'NSTableViewDelegate' [documentation] (http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSTableViewDelegate_Protocol/Reference/Reference.html)에는'tableView : viewForTableColumn : row :'가 있습니다. ,하지만 그것은 다른 서명이고 마지막 인자는'NSOutlineView' 에서처럼'id' 대신에'NSInteger'입니다. 수퍼 클래스 메서드는 하위 클래스 설명서에 포함되어 있지 않지만이 메서드는 상속 된 메서드로 보이지 않습니다. –

+0

NSOutlineView.h의 내 사본에 다음과 같이 표시됩니다. "View OutlineView : 대리자 메소드보기 -tableView : viewForTableColumn : row : NSTableView에서." 그래서 그들은 기본적으로 NSOutlineView가 NSTableView와 다른 방식으로 작동하기 때문에 다른 매개 변수를 사용하는 동일한 방법입니다 –

+0

테이블보기에서 모든 것은 행 인덱스를 기반으로합니다. 개요보기에서 데이터 소스는 objectForRowIndex :를 반환하고 다른 모든 객체는 행 인덱스 대신 해당 객체를 사용합니다. –