2011-11-27 14 views
3

私はソースリストのためにDelegateクラスを持っています。しかし、私はoutlineViewの戻り値の型を知りません:objectValueForTableColumn:byItem:する必要があります。私のコードは次のようになり、現時点では NSOutlineViewのソースリストのデータ

、すべての構造のものが動作しますが示すテキストがない:

@interface DataSource : NSObject<NSOutlineViewDelegate,NSOutlineViewDataSource> 

@end 

そして、私は例のアプリになりました

@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 

.Mは、違いを見せてください。 Image is here

+0

'return'行にブレークポイントを設定した場合、デバッガでヒットしますか? –

+0

いいえ、これは決してこの時点には至りません。 – thomasguenzel

+0

ブレークポイントがヒットしない場合でも、データソースの他の必要なメソッドを適切に実装していない可能性があるので、コードを編集する必要があるようです。あなたの元の質問については、NSString型を返すことができるはずですし、実際にそのブレークポイントにヒットしたらうまく表示されるはずです。 –

答えて

7

ビューベースのNSTableViewがあるとします。代理人では、メソッド- (id)outlineView:(NSOutlineView *)ov viewForTableColumn:(NSTableColumn *)tableColumnを実装する必要があります。それはかもしれない次のようになります。

- (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は、表のセル・ビューのデフォルトの識別子です。

+0

の2つのファイルを含むようになりました!これは働いた:) – thomasguenzel

関連する問題