首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSOutlineView源列表的数据

NSOutlineView源列表的数据
EN

Stack Overflow用户
提问于 2011-11-27 22:31:17
回答 1查看 2.9K关注 0票数 3

我有一个源列表的Delegate类。但是我不知道outlineView:objectValueForTableColumn:byItem:的返回变量应该是什么类型。

目前,我的代码看起来像这样,所有的结构都可以工作,但没有显示文本:

代码语言:javascript
复制
@interface DataSource : NSObject<NSOutlineViewDelegate,NSOutlineViewDataSource>

@end

和.m

代码语言:javascript
复制
@implementation DataSource
// Data Source methods

- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {

    return (item == nil) ? 1 : [item numberOfChildren];
}


- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
    return (item == nil) ? YES : ([item numberOfChildren] != -1);
}


- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {

    return (item == nil) ? [FileSystemItem rootItem] : [(FileSystemItem *)item childAtIndex:index];
}

//-(id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
-(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
    return @"Some String";
}


@end

我已经做了一个示例应用程序来展示不同之处。Image is here

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-05 16:18:58

我假设你有基于视图的NSTableView。在你的委托中,你应该实现方法- (id)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn。它可能看起来像这样:

代码语言:javascript
复制
- (id)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item{
    if ([[item representedObject] parent] == nil) {
        return [ov makeViewWithIdentifier:@"HeaderCell" owner:self];
    }else{
        return [ov makeViewWithIdentifier:@"DataCell" owner:self];
    }
}

HeaderCellDataCell是表格单元格视图的默认标识符。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8286261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档