3

我正在尝试在大纲视图中显示一个简单 plist (xml) 文件的内容。

一旦我在 NSXMLDocument 或 NSDictionary 中获得了文件数据,是否可以只使用这个现有结构来填充 TreeController?我能找到的所有代码示例都会解析并重建所有节点和内容。这不是已经在 NSXMLDocument 中建立了吗?

谢谢

4

1 回答 1

4

绑定使这变得非常容易。

如果您使用标准绑定,您可以使用 NSTreeController 与 NSOutlineView 和非常少的代码。

要使示例应用程序中的 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 回答