Hi,Can anybody please help me regarding this. Regards Symadept
On Wed, Oct 14, 2009 at 6:50 PM, Symadept <symad...@gmail.com> wrote: > > Hi, > Can you help me to fix this problem. > > I am customizing my table view to show various images in the background of > the cells accordingly as > > Selected : Font Changed to While Colour, Background image, Highlighted.png > Deselected/Normal: Font -> Black colour, Bg Image: Default.png > > I tried to override > - (void)drawInteriorWithFrame:(NSRect)theCellFrame > inView:(NSView*)theControlView > > of NSCell to change the Font Color and BgImage according to the state as I > mentioned earlier. > > Result: Once the application launched it is ok. Once I select col1 and > select col2, my Col1 still shows the Highlighted image, infact it is > deselected and supposed to show the Default Image. This because my Default > image is a transparent image. Even after overlapping Default.png on > Highlighted.png it is showing the same Highlighted.png. > > I guess what I need to do is to remove the image from the Cell before > redrawing it. How to do I really don't know. > > Kindly look into this and help me in this regards. > > //// CustomTableCell > > @interface CustomTableCell : NSCell { > > > } > > > @end > > > #import "CustomTableCell.h" > > > > @implementation CustomTableCell > > - (void)drawInteriorWithFrame:(NSRect)theCellFrame > inView:(NSView*)theControlView > > { > > NSLog(@"CustomTableCell drawInteriorWithFrame"); > > NSImage *bgImage = [NSImage imageNamed:@"DefaultCell"]; > > // Make attributes for our strings > > NSMutableParagraphStyle * aParagraphStyle = [[[NSMutableParagraphStyle > alloc] init] autorelease]; > > [aParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; > > [aParagraphStyle setAlignment:NSCenterTextAlignment]; > > // Title attributes: system font, 14pt, black, truncate tail > > NSMutableDictionary * aTitleAttributes = [[[NSMutableDictionary alloc] > initWithObjectsAndKeys: > > [NSColor blackColor],NSForegroundColorAttributeName, > > [NSFont systemFontOfSize:21.0],NSFontAttributeName, > > aParagraphStyle, NSParagraphStyleAttributeName, > > nil] autorelease]; > > // Make a Title string > > NSString * aTitle = [self stringValue]; > > NSLog(@"CellFrame:[%f %f] [%f %f]", theCellFrame.origin.x, theCellFrame. > origin.y, theCellFrame.size.width, theCellFrame.size.height); > > NSRect anIconBox = theCellFrame; > > NSRect aTitleBox = NSMakeRect(theCellFrame.origin.x, > > theCellFrame.origin.y + theCellFrame.size.height/2-10, > > theCellFrame.size.width, > > theCellFrame.size.height); > > > if( [self isHighlighted]) > > { > > // if the cell is highlighted, draw the text white > > [aTitleAttributes setValue:[NSColor whiteColor] forKey: > NSForegroundColorAttributeName]; > > bgImage = [NSImage imageNamed:@"FocusedCell"]; > > } > > else > > { > > // if the cell is not highlighted, draw the title black and the subtile > gray > > [aTitleAttributes setValue:[NSColor orangeColor] forKey: > NSForegroundColorAttributeName]; > > } > > // Draw the icon > > [bgImage drawInRect:anIconBox fromRect:NSZeroRect operation: > NSCompositePlusLighter fraction:1.0]; > > // Draw the text > > [aTitle drawInRect:aTitleBox withAttributes:aTitleAttributes]; > > } > > @end > > > //// CustomTableView > > @interface CustomTableView : NSTableView { > > > } > > > @end > > > #import "CustomTableView.h" > > > > @implementation CustomTableView > > > - (void)awakeFromNib > > { > > NSLog(@"CustomTableView awakeFromNib"); > > [[self enclosingScrollView] setDrawsBackground:NO]; > > } > > > - (void)drawBackgroundInClipRect:(NSRect)clipRect > > { > > NSLog(@"CustomTableView drawBackgroundInClipRect"); > > } > > > #pragma mark - > > #pragma mark Selection Highlighting > > > - (id)_highlightColorForCell:(NSCell *)cell > > { > > // we need to override this to return nil > > // or we'll see the default selection rectangle when the app is running > > // in any OS before leopard > > // you can also return a color if you simply want to change the table's > default selection color > > return nil; > > } > > > @end > > > Thanks in advance > > Regards > symadept > > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com