Hi,
ich habe einen NSOutlineView (siehe Anhang), der mir ein paar items anzeigt.
Ich möchte erreichen, dass ich einfach den Namen eines Items ändern, das Problem ist jetzt nur, wie ich das implementiere:
Alles anzeigen
Mit folgendem Code erhalte ich die Änderung, allerdings wird es sehr aufwendig, das entsprechende item zu finden und den Namen neu zu setzen.
Wie macht man dies bei view-based NSOutlineViews? outlineView:setObjectValue:forTableColumn:byItem: funktioniert bei view-based nicht.
Viele Grüße
ich habe einen NSOutlineView (siehe Anhang), der mir ein paar items anzeigt.
Ich möchte erreichen, dass ich einfach den Namen eines Items ändern, das Problem ist jetzt nur, wie ich das implementiere:
Quellcode
- #pragma mark -
- #pragma mark NSTextFieldDelegate
- - (BOOL)control:(NSControl *)control
- textShouldEndEditing:(NSText *)fieldEditor {
- NSLog(@" %@", fieldEditor.string);
- return YES;
- }
- #pragma mark -
- #pragma mark NSOutlineViewDelegate Pr
- - (NSView *)outlineView:(NSOutlineView *)outlineView
- viewForTableColumn:(NSTableColumn *)tableColumn
- item:(id)item {
- NSTableCellView *result = [outlineView makeViewWithIdentifier:[tableColumn identifier] owner:self];
- [result.textField setStringValue:[item name]];
- result.imageView.image = [NSImage imageNamed:NSImageNameFolder];
- result.textField.delegate = self;
- return result;
- }
- #pragma mark -
- #pragma mark NSOutlineViewDataSource Pr
- #pragma mark Display Data
- - (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
- if (item) {
- if ([item isKindOfClass:[HGJob class]]) {
- return 0;
- } else {
- return [item childNodes].count;
- }
- }
- return self.mainController.objectGraph.count;
- }
Mit folgendem Code erhalte ich die Änderung, allerdings wird es sehr aufwendig, das entsprechende item zu finden und den Namen neu zu setzen.
Wie macht man dies bei view-based NSOutlineViews? outlineView:setObjectValue:forTableColumn:byItem: funktioniert bei view-based nicht.
Viele Grüße