Возможно ли иметь отдельный файл XIB для NSTableCellView
основанного на представлении NSTableView
? Может быть, с помощью NSViewController
?
представления NSTableView на основе представлений из XIB?
Ответы (1)
Да, кажется, это возможно.
Из документации Apple:
Чтобы функционировать, программно реализованная таблица на основе представления должна реализовать следующее:
...
Метод - (NSView *)tableView:viewForTableColumn:row:, определенный протоколом NSTableViewDelegate. Этот метод предоставляет таблице представление для отображения в виде ячейки для определенного столбца и строки, а также заполняет эту ячейку соответствующими данными.
Таким образом, вы можете иметь объект класса NSView (или любого подкласса) и вернуть его после того, как вы правильно заполнили его данными. Откуда вы берете этот предмет, не представляет интереса. Насколько я знаю, можно было бы сделать, например, следующее:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Assume you have a XIB called View.xib
[NSBundle loadNibNamed:@"View" owner:self];
// And you have an IBOutlet to your NSTableView (that's view based) called tView
[tView reloadData];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 20;
}
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row {
// Assume your class has an IBOutlet called contentOfTableView,
// your class is File's Owner of the View.xib and you connected the outlet.
return contentOfTableView;
}
Надеюсь, что это работает. Я просто собрал это вместе, имея в виду грубую идею. Удачи!