NSOutlineView + NSTreeController에서 선택된 노드의 전체 경로를 얻을 수 있습니다. 선택한 값을 기반으로 모든 값을 동적으로로드합니다. 여기에 경로를 얻는 동안 문제가 구조체.
마찬가지로 폴더 경로. (예 : D :/NewFolder/Test/blah/blah1
동일하게 부모로부터 선택한 전체 경로를 가져와야합니다. 이미지에서 프로젝트를 선택 했으므로 경로가 필요합니다. 다음과 같이
이/Test/New Folder/Untitled/Project
내 코드가
- (IBAction) ButtonClick:(id)sender
{
self.treeoutlineview.delegate = self;
self.treeoutlineview.dataSource = self;
NSString *roots = @"/";
NSIndexPath *indexPath = nil;
indexPath = [NSIndexPath indexPathWithIndex:[contents count]];
TreeNode *node = [[TreeNode alloc] init];
[node TitleSet:roots];
[self.treeController insertObject:node atArrangedObjectIndexPath:indexPath];
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
childItem = item;
return childItem;
}
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
noofchildren = 0;
return noofchildren;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
return YES;
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
valueforcolumn = nil;
}
- (BOOL)outlineView:(NSOutlineView *)ov shouldSelectItem:(id)item {
{
rec = @"New Folder|Test|Backup|Project";
NSArray *arr = [rec componentsSeparatedByString:@"|"];
[loadChildValues removeAllObjects];
NSIndexPath *indexPath = nil;
if (![self.treeController selectionIndexPath])
{
indexPath = [NSIndexPath indexPathWithIndex:[contents count]];
}
else
{
if ([[[self.treeController selectedObjects] objectAtIndex:0] isLeaf])
{
NSBeep();
return;
}
indexPath = [self.treeController selectionIndexPath];
indexPath = [indexPath indexPathByAddingIndex:[[[[self.treeController selectedObjects] objectAtIndex:0] children] count]];
}
for (int i = 2; i< [arr count]; i++) {
[loadChildValues addObject:[arr objectAtIndex:i]];
TreeNode *node = [[TreeNode alloc] init];
[node TitleSet:[arr objectAtIndex:i]];
[self.treeController insertObject:node atArrangedObjectIndexPath:indexPath];
}
}
내가이 작업을 수행하는 방법. 모든 신체 PLS 도움이 사전에이. 감사를 해결하는 것입니다.
당신은 어떤 당신이 시도 코드와 어떤 부분을 이해 할 필요를 게시 할 수 ? 귀하의 질문이 너무 광범위합니다. – uchuugaka
@uchuugaka 코드를 업데이트했습니다. Pls 내 코드를 확인하십시오. – akk