2012-01-23 1 views
3

간단한 plist (xml) 파일의 내용을 개요보기에 표시하려고합니다.NSTreeController setcontent를 NSXMLDocument와 함께 사용할 수 있습니까?

일단 파일 데이터가 NSXMLDocument 또는 NSDictionary에 있으면이 기존 구조를 사용하여 TreeController를 채울 수 있습니까? 모든 코드 예제를 통해 모든 노드와 내용을 파싱하고 재구성 할 수 있습니다. 이 NSXMLDocument 이미 설정된 아닌가요?

감사

강탈

답변

4

바인딩이 정말 간단합니다.

표준 바인딩을 사용하는 경우 NSOutlineView와 결합 된 NSTreeController와 매우 적은 코드를 사용할 수 있습니다.

샘플 응용 프로그램의 NSXML 객체가 NSTreeController 객체와 함께 작동하도록하려면 범주를 통해 NSXMLNode 클래스에 몇 가지 메서드를 추가하기 만하면됩니다.

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/NSXML_Concepts/Articles/UsingTreeControllers.html

#import "NSXMLNode+NSXMLNodeAdditions.h" 

@implementation NSXMLNode (NSXMLNodeAdditions) 

- (NSString *)displayName { 
    NSString *displayName = [self name]; 
    if (!displayName) { 
     displayName = [self stringValue]; 
    } 
    return displayName; 
} 
- (BOOL)isLeaf { 
    return [self kind] == NSXMLTextKind ? YES : NO; 
} 
@end 

여기 NSTreeContoller enter image description here enter image description here

및 NSOutlineView의 TableColumn의 enter image description here

모두 관련 설정의 스크린 샷입니다
관련 문제