Вы правы, что ваше текстовое поле должно быть редактируемым в Интерфейсном Разработчике.
Затем настройте контроллер на соответствие NSTextFieldDelegate.Затем установите делегат для текстового поля в outlineView: viewForTableColumn: item:, например, так:
tableCellView.textField.delegate = self
Вот упрощенный пример, в котором вы реализовали метод возврата представления ячейки таблицы для элементадля вашего наброска.
-(NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
NSTableCellView *tableCellView = [outlineView makeViewWithIdentifier:@"myTableCellView" owner:self];
MyItem *myItem = (MyItem *)item; // MyItem is just a pretend custom model object
tableCellView.delegate = self;
tableCellView.textField.stringValue = [myItem title];
tableCellView.textField.delegate = self;
return result;
}
Затем контроллер должен получить уведомление controlTextDidEndEditing:
- (void)controlTextDidEndEditing:(NSNotification *)obj
{
NSTextField *textField = [obj object];
NSString *newTitle = [textField stringValue];
NSUInteger row = [self.sidebarOutlineView rowForView:textField];
MyItem *myItem = [self.sidebarOutlineView itemAtRow:row];
myItem.name = newTitle;
}