NSOUTLINEVIEW -AUTO -EXPAND 모든 노드
-
21-08-2019 - |
문제
나는있다 NSOutlineView
묶인 NSTreeController
(차이가있는 경우), 나는 내 모든 노드를 확장하고 싶습니다 -awakeFromNib()
.
또한 첫 번째 노드의 첫 번째 자식을 동시에 프로그래밍 방식으로 선택하고 싶습니다. 이런 종류의 것들은 테이블 뷰에서 간단하지만 개요는 전혀 협력하지 않습니다.
감사,
부자
해결책
내 -awakefromnib ()의 모든 노드를 확장하고 싶습니다.
Mac OS X 10.5에서 [outlineView expandItem:nil expandChildren:YES]
.
Mac OS X의 이전 버전에서는 0에서 행 수로 반복해야하며 사용하여 각 행의 항목을 가져와야합니다. [outlineView itemAtRow:row]
, 해당 항목을 배열에 저장 한 다음 배열을 반복하고 각 항목을 전달합니다. expandItem:expandChildren:
방법. (품목을 확장하고 모든 후손이 후속 형제의 행 색인을 변경하기 때문에 두 루프를 혼합 할 수는 없으므로 먼저 모든 최상위 항목을 수집 한 다음 모든 것을 확장해야합니다. )
또한 첫 번째 노드의 첫 번째 자식을 동시에 프로그래밍 방식으로 선택하고 싶습니다.
위의 직후에 1 행이됩니다.
개요보기는 일종의 테이블 뷰이므로 NstableView의 방법 중 하나를 사용할 것입니다. [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]
.
다른 팁
데이터 소스에서로드하는 경우
dispatch_async(dispatch_get_main_queue(), ^{
[self.outlineView expandItem:root expandChildren:YES];
});