2012-01-23 5 views
3

シンプルなplist(xml)ファイルの内容をアウトラインビューに表示しようとしています。NSTreeControllerのsetcontentをNSXMLDocumentで使用できますか?

NSXMLDocumentまたはNSDictionaryのいずれかのファイルデータを取得したら、この既存の構造体を使用してTreeControllerを作成することはできますか?私が見つけることができるすべてのコード例は、すべてのノードと内容を解析して再構築することができます。これはNSXMLDocumentに既に設定されていますか?

おかげ

奪う

答えて

4

バインディングは、これは本当に簡単。

標準バインディングを使用している場合は、NSTreeControllerとNSOutlineViewを組み合わせて使用​​できます。

サンプルアプリケーションのNSXMLオブジェクトをNSTreeControllerオブジェクトと連携させるには、カテゴリを介してNSXMLNodeクラスに2つのメソッドを追加するだけです。ここ

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

の両方に関連する設定のスクリーンショットです
関連する問題