NSOutlineView mit 2 verschiedenen NSCell Typen

  • NSOutlineView mit 2 verschiedenen NSCell Typen

    Hallo,

    Habe einen NSOutlineView, dessen delegate outlineView:dataCellForTableColumn:item: implementiert. Diese Funktion gibt eine von 2 möglichen NSCells zurück, abhängig von item.
    Eins ist eine ImageAndTextCell, das andere LPNumberedTextCell (eine Subclass von NSTextFieldCell).
    Das Problem ist, dass nach dem Editieren einer LPNumberedTextCell der neue Wert aus dem field editor nicht übernommen wird. Woran kann das liegen? Hier noch die Cell-Implementierung:

    Quellcode

    1. @implementation LPNumberedTextCell
    2. @synthesize number;
    3. - (id)init
    4. {
    5. if (self = [super init])
    6. {
    7. number = @"";
    8. [self setSelectable:YES];
    9. [self setEditable:YES];
    10. }
    11. return self;
    12. }
    13. - (id)copyWithZone:(NSZone *)zone
    14. {
    15. LPNumberedTextCell *cell = (LPNumberedTextCell *)[super copyWithZone:zone];
    16. cell.number = self.number;
    17. return cell;
    18. }
    19. - (void)editWithFrame:(NSRect)aRect inView:(NSView *)controlView editor:(NSText *)textObj delegate:(id)anObject event:(NSEvent *)theEvent
    20. {
    21. ...
    22. [super editWithFrame: aRect inView: controlView editor:textObj delegate:anObject event: theEvent];
    23. }
    24. - (void)selectWithFrame:(NSRect)aRect inView:(NSView *)controlView editor:(NSText *)textObj delegate:(id)anObject start:(NSInteger)selStart length:(NSInteger)selLength
    25. {
    26. ...
    27. [super selectWithFrame: aRect inView: controlView editor:textObj delegate:anObject start:selStart length:selLength];
    28. }
    29. - (void)drawWithFrame:(NSRect)rect inView:(NSView *)controlView
    30. {
    31. ...
    32. [super drawWithFrame:rect inView:controlView];
    33. }
    34. @end
    Alles anzeigen
    [url]http://www.martinhoeller.net[/url]