В приведенных ниже строках журнала будет отображаться «Ячейка таблицы: [здесь записано допустимое значение]», но «Текстовое поле: (пустое)».
На самом деле я пытаюсь создать NSOutlineView программно, и он работает с подходом на основе ячеек, но не с подходом на основе представления. Может кто-нибудь сказать мне, что я делаю неправильно?
-(NSView*)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {
NSTableCellView* view = [outlineView makeViewWithIdentifier:tableColumn.identifier owner:self];
if (view == nil) {
view = [[NSTableCellView alloc] init];
view.identifier = tableColumn.identifier;
}
view.textField.stringValue = @"TEST";
NSLog(@"Table cell: %@", view);
NSLog(@"Text field: %@", view.textField);
return view;
}
view.textField = [[NSTextField alloc] init]
, приложение подняло EXC_BAD_ACCESS. - person magnus   schedule 24.11.2014addSubview:
его в представлении схемы. - person Anoop Vaidya   schedule 24.11.2014NSTableCellView
и позволить подклассу сделать это. Что является превосходным подходом. - person trojanfoe   schedule 24.11.2014[[NSTextField alloc] init]
для установки свойстваtextField
, вам нужно создать его, а затем добавить в качестве подвида вашегоNSTableCellView
([view addSubview:tf]
). ОшибкаEXC_BAD_ACCESS
может быть вызвана пропуском этого шага. В этом методе вам также нужно будет установить рамку вашего поля или, что еще лучше, ограничить ее. - person Paul Patterson   schedule 25.11.2014