• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
SOLVED: Strange NSCell subclass issue ...
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SOLVED: Strange NSCell subclass issue ...


  • Subject: SOLVED: Strange NSCell subclass issue ...
  • From: Mic Pringle <email@hidden>
  • Date: Tue, 31 Mar 2009 20:03:04 +0100

Please ignore this cry for help as it turns out I made a bit of a
'school boy' error.

The line

[separator drawInRect:NSMakeRect(cellFrame.origin.x,
cellFrame.size.height - 10.0f, cellFrame.size.width, 2.0f)
                                fromRect:NSZeroRect
                               operation:NSCompositeSourceOver
                                fraction:1.0f];

Should read

[separator drawInRect:NSMakeRect(cellFrame.origin.x,
cellFrame.origin.y + cellFrame.size.height - 10.0f,
cellFrame.size.width, 2.0f)
                                fromRect:NSZeroRect
                               operation:NSCompositeSourceOver
                                fraction:1.0f];

Turns out the image was being drawn for each row, on in the same place
each time. Doh!

-Mic


---------- Forwarded message ----------
From: Mic Pringle <email@hidden>
Date: 2009/3/31
Subject: Strange NSCell subclass issue ...
To: cocoa-dev <email@hidden>


Hi,

I have subclassed NSCell and implemented only the following method ...

- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
       NSImage *separator = [NSImage imageNamed:@"Separator.png"];
       [separator setScalesWhenResized:YES];
       [separator setFlipped:YES];
       NSGraphicsContext *context = [NSGraphicsContext currentContext];
       [context saveGraphicsState];
       NSImageInterpolation interpolation = [context imageInterpolation];
       [context setImageInterpolation:NSImageInterpolationHigh];
       [separator setSize:NSMakeSize(cellFrame.size.width, 2.0f)];
       [separator drawInRect:NSMakeRect(cellFrame.origin.x,
cellFrame.size.height - 10.0f, cellFrame.size.width, 2.0f)
                                fromRect:NSZeroRect
                               operation:NSCompositeSourceOver
                                fraction:1.0f];
       [context setImageInterpolation:interpolation];
       [context restoreGraphicsState];
}

I have then subclassed NSTableView and set the dataCell of the first
column to the above subclass.

All works fine, except for the fact that the image drawn (separator)
in the drawWithFrame method is only drawn in the very first cell. I
have three rows displayed in the table view, and can clarify this as I
can click on them and get the blue highlight.

Any ideas as to why this would only draw the first cell and not all three ?

Thanks

-Mic
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Prev by Date: Re: Programmatically opened NSPanel not responding to actions
  • Next by Date: custom toolbar item autoresizing?
  • Previous by thread: Re: Programmatically opened NSPanel not responding to actions
  • Next by thread: custom toolbar item autoresizing?
  • Index(es):
    • Date
    • Thread