3

単純な plist (xml) ファイルの内容を Outlineview に表示しようとしています。

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

ありがとう

奪う

4

1 に答える 1

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 の両方に関連する設定のスクリーンショットを次に示します。 ここに画像の説明を入力 ここに画像の説明を入力

および NSOutlineView の TableColumn ここに画像の説明を入力

于 2012-10-19T17:13:41.810 に答える