2012-08-16 2 views
0

Я пытаюсь настроить правильные привязки, чтобы сделать SourceView (OutlineView) в режиме View-Based для работы с TreeController. Он корректно работает в режиме Cell-Based.Приложение MasterDetail OSX с SourceView в режиме View-Based

К сожалению, я не могу найти, как настроить заголовок & текст заголовка, все это я получаю пустой материал: ≤≤

Что я получаю:

enter image description here

XCode проект, если вы чувствуете, как копание в:

https://www.dropbox.com/s/qz3m9p5vd2qvngb/MasterDetail.zip

Взял данные из anot ее должность:

[ 
    { 
     "itemName": "Item 1", 
     "children": [] 
    }, 
    { 
     "itemName": "Item 2", 
     "children": [ 
      { 
       "itemName": "Item 2.1", 
       "children": [] 
      }, 
      { 
       "itemName": "Item 2.2", 
       "children": [ 
        { 
         "itemName": "Item 2.2.1", 
         "children": [] 
        }, 
        { 
         "itemName": "Item 2.2.2", 
         "children": [] 
        } 
       ] 
      } 
     ] 
    }, 
    { 
     "itemName": "Item 3", 
     "children": [] 
    } 
] 

ответ

2

Вы должны выполнить по крайней мере -outlineView:viewForTableColumn:item: так Outline View умеет отображать данные. В вашем контурной Посмотреть источник данных, реализовать метод как это:

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item { 

    NSView *cellView = [outlineView makeViewWithIdentifier:@"DataCell" owner:self]; 
    return cellView; 
} 

Если испытанный это ваш проект и теперь отображаются клетки. Просмотрите протоколы NSOutlineViewData/NSOutlineViewDelegate для получения дополнительной информации.

+0

Я думал, что цель привязки - избавиться от делегатов? Но это сработало при добавлении делегата в 'NSOutlineView' (в данном случае' AppDelegate') и реализации вашего метода. В моем случае «dataSource» является общим «TreeController». – Olivier

Смежные вопросы