【发布时间】:2011-12-05 16:18:58
【问题描述】:
我有一个源列表的委托类。但是我不知道outlineView:objectValueForTableColumn:byItem:的返回变量应该是什么类型。
目前我的代码看起来像这样,所有的结构都可以工作,但没有显示文本:
@interface DataSource : NSObject<NSOutlineViewDelegate,NSOutlineViewDataSource>
@end
还有.m
@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
【问题讨论】:
-
如果你在
return行设置断点,它会在调试器中命中吗? -
不,它永远不会达到这一点。
-
在我看来,您需要编辑您的问题以显示更多代码,因为如果该断点甚至没有命中,那么您可能没有正确实现数据源的其他必需方法。至于你原来的问题,你应该能够返回一个 NSString 类型,它应该显示得很好(一旦你真的打了那个断点)。
-
现在代码包含了来自委托对象的 2 个文件
标签: objective-c cocoa nsoutlineview