2012-01-01 3 views
5

ビューベースのNSOutlineViewはNSTreeControllerにバインドされています。デリゲートでoutlineView:isGroupItem:メソッドを実装するまで、すべて正常に動作するように見えて、グループヘッダーが突然表示されなくなりました。このビューベースのNSTableView/NSOutlineViewとisGroupItem

enter image description here

のように私は、セルベースにNSOutlineViewを変更した場合は、グループ項目が正しく表示されることを確認しました。 NSTableViewでも同様の動作が観察されます。他に誰かがこの問題に遭遇しましたか?

答えて

11

解決済み! NSOutlineViewカラムと同じ識別子を有するビューを配置することによって、テーブル内の各セルのためのビューを生成基づいてデフォルトのビューにより、私はNSOutlineViewデリゲート明らか

- (NSView *)outlineView:(NSOutlineView *)outlineView 
    viewForTableColumn:(NSTableColumn *)tableColumn 
        item:(id)item { 
    if ([self outlineView:outlineView isGroupItem:item]) { 
     NSString *vId = [[[outlineView tableColumns] objectAtIndex:0] identifier]; 
     return [outlineView makeViewWithIdentifier:vId owner:self]; 
    } 
    return [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self]; 
} 

に次のメソッドを実装しなければならなかったが判明

。ただし、グループ項目/グループ行の場合、その行にはtableColummが関連付けられていないため、ビューは表示されず、表示されません。

りんごで遊んでTableViewPlayground sample project本当に助けてください!強くお勧めします!

+0

詳細な更新をありがとうございます。 –

+0

+1 TableViewPlayground参照の場合 – rluba

+0

[公式のNSOutlineViewDelegateドキュメント](https://developer.apple.com/library/mac/documentation/cocoa/reference/)の 'outlineView:viewForTableColumn:item:'がなぜではないのですか? NSOutlineViewDelegate_Protocol/Reference/Reference.html) – zakdances

関連する問題